mysql
#创建测试表
CREATE TABLE `user` (
`id` varchar(32) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
#编写存储过程
DROP PROCEDURE IF EXISTS procedure_test;
DELIMITER $ #这一步是因为,正常的sql中是以分号(;)为结尾,遇见分号就说明该段sql执行完了,但是在存储过程中很明显遇见分号,并没有执行完成,所以该段语句则为将结束语句的标识符(;)替换为($),数据库中一般用$或者//代替;
CREATE PROCEDURE procedure_test() #创建存储过程
BEGIN
DECLARE i INT DEFAULT 1; #声明变量
WHILE i <= 10 DO
insert into user (
id,
name,
age)
values (replace(UUID(), '-', ''), CONCAT('zhangsan',i), 18);
SET i = i+1;
END WHILE;
END $
CALL procedure_test(); #调用存储过程
ORACLE
--创建测试表
CREATE TABLE "TEST_USER" (
"ID" VARCHAR2 ( 32 ) NOT NULL ENABLE,
"U_NAME" VARCHAR2 ( 255 ),
"U_AGE" NUMBER ( *, 0 ),
PRIMARY KEY ( "ID" )
)
DECLARE
i INTEGER DEFAULT 0; --声明变量
BEGIN
FOR i IN 1..10 LOOP
INSERT INTO TEST_USER (ID, U_NAME, U_AGE) VALUES (i, 'test' || i, 20);
END LOOP;
END;