create PROCEDURE dowhile() BEGIN DECLARE i int DEFAULT 0; START TRANSACTION;--定义事务 WHILE i<100 DO INSERT INTO user_basic(username, passport, password, truename,email, company) VALUES(CONCAT('lll',i),CONCAT('llll',i),ecc1633d785ef59115,CONCAT('这是测试 ',i)1,CONCAT('username@test',i,'.com'),now(),10+i,now()); set i=i+1; END WHILE; COMMIT;--开始执行事务 END 这样写可以吗?
create PROCEDURE dowhile() BEGIN DECLARE i int DEFAULT 0; START TRANSACTION;--定义事务 WHILE i<100 DO INSERT INTO user_basic(username, passport, password, truename,email, company) VALUES(CONCAT('lll',i),CONCAT('llll',i),ecc1633d785ef59115,CONCAT('这是测试 ',i),CONCAT('username@test',i,'.com')); set i=i+1; END WHILE; COMMIT;--开始执行事务 END 改为这样,也不行,是不是我mysql的版本问题。
password是varchar(32)类型我现在重新再改了下。 create PROCEDURE dowhile() BEGIN DECLARE i int DEFAULT 0; START TRANSACTION;--定义事务 WHILE i<100 DO INSERT INTO user_basic(username, passport, password, truename,email, company) VALUES(CONCAT('lll',i),CONCAT('llll',i),ecc1633d785ef59115,CONCAT('这是测试 ',i),CONCAT('username@test',i,'.com'),CONCAT('这是测试 ',i)); set i=i+1; END WHILE; COMMIT;--开始执行事务 END
INSERT INTO user_basic(username, passport, password, truename,email, company) VALUES(CONCAT('lll',i),CONCAT('llll',i),'ecc1633d785ef59115',CONCAT('这是测试 ',i),CONCAT('username@test',i,'.com'),CONCAT('这是测试 ',i)); set i=i+1;
错误 SQL 查询: CREATE PROCEDURE dowhile( ) BEGIN DECLARE i int DEFAULT 0;MySQL 返回: #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 'int DEFAULT 0' at line 3 还是会报错
DELIMITER $$ CREATE PROCEDURE dowhile() BEGIN DECLARE i INT DEFAULT 0; START TRANSACTION; WHILE i<100 DO INSERT INTO user_basic(username, passport, PASSWORD, truename,email, company) VALUES(CONCAT('lll',i),CONCAT('llll',i),'ecc1633d785ef59115',CONCAT('这是测试 ',i),CONCAT('username@test',i,'.com'),CONCAT('这是测试 ',i)); SET i=i+1; END WHILE; COMMIT; END $$ DELIMITER ;
错误 SQL 查询: DELIMITER $$ CREATE PROCEDURE dowhile( ) BEGIN DECLARE i INT DEFAULT 0;MySQL 返回: #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 'DELIMITER $$ CREATE PROCEDURE dowhile() BEGIN DECLARE i INT DEFAULT 0' at line 1
你的代码是这样? DELIMITER $$ CREATE PROCEDURE dowhile( ) BEGIN DECLARE i INT DEFAULT 0;所有东西都在一行上? 并且没有END结束?
在MYSQL命令下测试没有,我是测试通过的
测试OK DELIMITER $$ CREATE PROCEDURE dowhile() BEGIN DECLARE i INT DEFAULT 0; START TRANSACTION; WHILE i<100 DO INSERT INTO user_basic(username, passport, PASSWORD, truename,email, company) VALUES(CONCAT('lll',i),CONCAT('llll',i),'ecc1633d785ef59115',CONCAT('这是测试 ',i),CONCAT('username@test',i,'.com'),CONCAT('这是测试 ',i)); SET i=i+1; END WHILE; COMMIT; END $$ DELIMITER ; create table user_basic(id int(6) NOT NULL AUTO_INCREMENT UNIQUE,username VARCHAR(20),passport VARCHAR(20),PASSWORD VARCHAR(20),truename VARCHAR(20),email VARCHAR(20),company VARCHAR(20)); mysql> call dowhile();
create PROCEDURE dowhile()
BEGIN
DECLARE i int DEFAULT 0;
START TRANSACTION;--定义事务
WHILE i<100 DO
INSERT INTO user_basic(username, passport, password, truename,email, company)
VALUES(CONCAT('lll',i),CONCAT('llll',i),ecc1633d785ef59115,CONCAT('这是测试 ',i)1,CONCAT('username@test',i,'.com'),now(),10+i,now());
set i=i+1;
END WHILE;
COMMIT;--开始执行事务
END
这样写可以吗?
BEGIN
DECLARE i int DEFAULT 0;
START TRANSACTION;--定义事务
WHILE i<100 DO
INSERT INTO user_basic(username, passport, password, truename,email, company)
VALUES(CONCAT('lll',i),CONCAT('llll',i),ecc1633d785ef59115,CONCAT('这是测试 ',i),CONCAT('username@test',i,'.com'));
set i=i+1;
END WHILE;
COMMIT;--开始执行事务
END 改为这样,也不行,是不是我mysql的版本问题。
CONCAT('这是测试 ',i)1:有问题
CONCAT('username@test',i,'.com'),now(),10+i,now():有问题
password是varchar(32)类型我现在重新再改了下。
create PROCEDURE dowhile()
BEGIN
DECLARE i int DEFAULT 0;
START TRANSACTION;--定义事务
WHILE i<100 DO
INSERT INTO user_basic(username, passport, password, truename,email, company)
VALUES(CONCAT('lll',i),CONCAT('llll',i),ecc1633d785ef59115,CONCAT('这是测试 ',i),CONCAT('username@test',i,'.com'),CONCAT('这是测试 ',i));
set i=i+1;
END WHILE;
COMMIT;--开始执行事务
END
VALUES(CONCAT('lll',i),CONCAT('llll',i),'ecc1633d785ef59115',CONCAT('这是测试 ',i),CONCAT('username@test',i,'.com'),CONCAT('这是测试 ',i));
set i=i+1;
错误
SQL 查询: CREATE PROCEDURE dowhile( ) BEGIN DECLARE i int DEFAULT 0;MySQL 返回: #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 'int DEFAULT 0' at line 3 还是会报错
CREATE PROCEDURE dowhile()
BEGIN
DECLARE i INT DEFAULT 0;
START TRANSACTION;
WHILE i<100 DO
INSERT INTO user_basic(username, passport, PASSWORD, truename,email, company)
VALUES(CONCAT('lll',i),CONCAT('llll',i),'ecc1633d785ef59115',CONCAT('这是测试 ',i),CONCAT('username@test',i,'.com'),CONCAT('这是测试 ',i));
SET i=i+1;
END WHILE;
COMMIT;
END $$
DELIMITER ;
SQL 查询: DELIMITER $$ CREATE PROCEDURE dowhile( ) BEGIN DECLARE i INT DEFAULT 0;MySQL 返回: #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 'DELIMITER $$
CREATE PROCEDURE dowhile()
BEGIN
DECLARE i INT DEFAULT 0' at line 1
DELIMITER $$ CREATE PROCEDURE dowhile( ) BEGIN DECLARE i INT DEFAULT 0;所有东西都在一行上? 并且没有END结束?
测试OK
DELIMITER $$
CREATE PROCEDURE dowhile()
BEGIN
DECLARE i INT DEFAULT 0;
START TRANSACTION;
WHILE i<100 DO
INSERT INTO user_basic(username, passport, PASSWORD, truename,email, company)
VALUES(CONCAT('lll',i),CONCAT('llll',i),'ecc1633d785ef59115',CONCAT('这是测试 ',i),CONCAT('username@test',i,'.com'),CONCAT('这是测试 ',i));
SET i=i+1;
END WHILE;
COMMIT;
END $$
DELIMITER ;
create table user_basic(id int(6) NOT NULL AUTO_INCREMENT UNIQUE,username VARCHAR(20),passport VARCHAR(20),PASSWORD VARCHAR(20),truename VARCHAR(20),email VARCHAR(20),company VARCHAR(20));
mysql> call dowhile();