USE aa;
DELIMITER
DROP PROCEDURE IF EXISTS test_two2;
CREATE PROCEDURE dingd()
BEGIN
DECLARE i INT DEFAULT 4000;
WHILE i < 5000 DO
INSERT INTO newUid VALUES (i)
SET i =i+1;
END WHILE;
END
执行有错误
错误代码: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set i =i+1;
end while
end' at line 6
执行耗时 : 0 sec
传送时间 : 0 sec
总耗时 : 0.001 sec
USE aa;
DELIMITER $$ --改变 MySQL delimiter 为:“$$”
DROP PROCEDURE IF EXISTS test_two2 $$
CREATE PROCEDURE test_two2()
BEGIN
DECLARE i INT DEFAULT 4000;
WHILE i < 5000 DO
INSERT INTO newUid VALUES (i);
SET i =i+1;
END WHILE;
END; $$
DELIMITER ; --改回默认的;
INSERT INTO newUid VALUES (i) 少了;
不是啊 加上;也不行啊
USE aa;
DELIMITER
DROP PROCEDURE IF EXISTS test_two2;
CREATE PROCEDURE test_two2()
BEGIN
DECLARE i INT DEFAULT 4000;
WHILE i < 5000 DO
INSERT INTO newUid VALUES (i);
SET i =i+1;
END WHILE;
END
执行耗时 : 0.001 sec
传送时间 : 0.004 sec
总耗时 : 0.005 sec
--------------------------------------------------
查询:create procedure test_two2() begin declare i int default 4000; while i < 5000 do INSERT INTO d_new_uid VALUES (i); set i =i+1; e...
错误代码: 1304
PROCEDURE test_two2 already exists
执行耗时 : 0 sec
传送时间 : 0 sec
总耗时 : 0.002 sec
USE aa;
DELIMITER $$ --改变 MySQL delimiter 为:“$$”
DROP PROCEDURE IF EXISTS test_two2 $$
CREATE PROCEDURE dingd()
BEGIN
DECLARE i INT DEFAULT 4000;
WHILE i < 5000 DO
INSERT INTO newUid VALUES (i);
SET i =i+1;
END WHILE;
END; $$
DELIMITER ; --改回默认的;
DELIMITER 是MySQL用来定义结束符的,默认情况下结束符是; 因为你要定义存储过程,所以不能让它结束,必须先改成别的结束符号,等定义完后,再改回;
如:DELIMITER $$ 就是改成$$是结束符
ok
CREATE PROCEDURE dingd()
BEGIN
DECLARE @i INT;
set @i=4000
WHILE @i < 5000 DO
INSERT INTO newUid VALUES (@i)
SET @i =@i+1;
END WHILE;
END
这个好像不行