drop procedure if EXISTS proc_insert_J;
DELIMITER $$
CREATE PROCEDURE proe_insert_J(in args int)
BEGIN
DECLARE i INT DEFAULT 0:
start transaction;
REPEAT
set i=i+1;
insert into j(jno,jname,city) values (CONCAT('j',i),CONCAT('项目',i),'济南');
UNTIL i>=args
END REPEAT:
commit;
END
$$
DELIMITER;
call proc_insert_J(100000);
错误
drop procedure if EXISTS proc_insert_J
> OK
> 时间: 0.001s
CREATE PROCEDURE proe_insert_J(in args int)
BEGIN
DECLARE i INT DEFAULT 0:
start transaction;
REPEAT
set i=i+1;
insert into j(jno,jname,city) values (CONCAT('j',i),CONCAT('项目',i),'济南');
UNTIL i>=args
END REPEAT:
commit;
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 ':
start transaction;
REPEAT
set i=i+1;
insert into j(jno,jname,cit' at line 3
> 时间: 0s
我想知道错误出在哪里,望告知
你声明变量i符号应该用分号、开启事务也是用分号,下面是代码
DROP PROCEDURE IF EXISTS proc_insert_J;
CREATE PROCEDURE proc_insert_J(in args int)
BEGIN
DECLARE i INT DEFAULT 0;
START TRANSACTION;
REPEAT
SET i=i+1;
INSERT INTO j(jno,jname,city) VALUES (CONCAT('j',i),CONCAT('项目',i),'济南');
UNTIL i>=args
END REPEAT;
COMMIT;
END;
有问题及时反馈哦
错误提示不是已经写了吗,你把 DECLARE i INT DEFAULT 0: 后面的冒号: 改成分号; 试试
1、首先进入cmd登录Mysql。
2、进入mysql库: use mysql;
3、查看用户信息:select user,host from user;
4、更改规则:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
上面sql中的第一个root是指用户名,@之后是指能够登录的主机,如果查出来的为%,只需要在@之后改为%即可。后面一个root为密码。
5、navicat登录测试
END!!!