DELIMITER $$
CREATE PROCEDURE insertt()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i<317 DO
INSERT INTO phone_yz(`name`,sex,birthday,age,phone,address )
SELECT `name`,sex,birthday,age,phone,address
FROM phone_yz
SET i=i+1
END WHILE
END $$
delimiter;call insertt();
CREATE PROCEDURE insertt()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i<317 DO
INSERT INTO phone_yz(`name`,sex,birthday,age,phone,address )
SELECT `name`,sex,birthday,age,phone,address
FROM phone_yz
SET i=i+1
END WHILE
END $$
delimiter;call insertt();
CREATE PROCEDURE insertt()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i<317 DO
INSERT INTO phone_yz(`name`,sex,birthday,age,phone,address )
SELECT `name`,sex,birthday,age,phone,address
FROM phone_yz
SET i=i+1
END WHILE
END ;
[Err] 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 'INSERT INTO phone_yz(`name`,sex,birthday,age,phone,address )
SELECT `name`,se' at line 5
-- 少写了分号
mysql> create table phone_yz
-> (`name` int,sex int,birthday int,age int,phone int,address int);
Query OK, 0 rows affected (0.01 sec)mysql>
mysql> DELIMITER //
mysql> CREATE PROCEDURE insertt()
-> BEGIN
-> DECLARE i INT DEFAULT 0;
-> WHILE i<10 DO
-> INSERT INTO phone_yz(`name`,sex,birthday,age,phone,address )
-> SELECT `name`,sex,birthday,age,phone,address
-> FROM phone_yz; -- 分号
-> SET i=i+1; -- 分号
-> END WHILE; -- 分号
-> END ; //
Query OK, 0 rows affected (0.00 sec)mysql>
mysql> DELIMITER ;
mysql>
mysql> insert into phone_yz values(1,1,1,1,1,1) ;
Query OK, 1 row affected (0.00 sec)mysql>
mysql> call insertt ;
Query OK, 512 rows affected (0.03 sec)mysql> select count(*) from phone_yz ;
+----------+
| count(*) |
+----------+
| 1024 |
+----------+
1 row in set (0.00 sec)mysql>
mysql> drop PROCEDURE insertt ;
Query OK, 0 rows affected (0.00 sec)mysql> drop table phone_yz ;
Query OK, 0 rows affected (0.01 sec)mysql>
这里写另一种repeat循环用法
DELIMITER $$CREATE PROCEDURE insertt()
BEGIN
DECLARE i INT DEFAULT 0;
repeat
INSERT INTO phone_yz(`name`,sex,birthday,age,phone,address )
SELECT `name`,sex,birthday,age,phone,address
FROM phone_yz;
SET i=i+1;
until i>317
end repeat;
END $$delimiter ;call insertt();