在程序中声明游标之前,可以在表中插入值吗?我需要插入值才能在游标中使用它。像这样的东西:
DELIMITER $$
CREATE PROCEDURE proc(IN val_1 VARCHAR(45),IN val_2 VARCHAR(45),IN val_3 INT,IN val_4 SMALLINT)
BEGIN
insert into table1 (value1,value2,value3,value4) values (val_1,val_2,val_3,val_4);
DECLARE cursor1 CURSOR
FOR
select value1 from table1 order by value1 asc limit 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cursor1;
read_loop: LOOP
FETCH cursor1 into a;
IF done THEN
leave read_loop;
END $$
答案 0 :(得分:0)
DECLARE只允许在BEGIN ... END复合语句中使用,并且必须在任何其他语句之前的开头。
声明必须遵循一定的顺序。游标声明必须出现在处理程序声明之前。变量和条件声明必须出现在游标或处理程序声明之前。
所以,在宣布你的insert statement
之前,你不能拥有cursor
。
将来只需转到dev.mysql