写个存储过程!代码以下:sql
CREATE PROCEDURE InsertUsers() BEGIN DECLARE userName VARCHAR(50); DECLARE userPwd VARCHAR(50); DECLARE userTureName VARCHAR(50); DECLARE userTelephone VARCHAR(50); DECLARE userMobilephone VARCHAR(50); DECLARE userQq VARCHAR(50); DECLARE userAddress VARCHAR(50); DECLARE userEmail VARCHAR(50); DECLARE userIsFrezee int; DECLARE userParentId int; DECLARE userRemark VARCHAR(50); DECLARE userSpId int; DECLARE i int; set userPwd = "123456789"; set userTureName = "testUser"; set userTelephone = "123456789"; set userMobilephone = "123456789"; set userQq = "123456798"; set userAddress = "学府路一段24号"; set userEmail = "asd@qq.com"; set userIsFrezee = 0; set userParentId = 1; set userRemark = "test_user"; set userSpId = 1; set i = 1; loop1:WHILE(i < 21) do Set userName=concat('danger',i); INSERT into t_user(user_name, user_pwd, user_true_name, user_telephone, user_mobilephone, user_qq_number, user_address, user_email, user_isfrezee, user_parent_id, user_remark, user_sp_id) VALUES(userName, userPwd, userTureName, userTelephone, userMobilephone, userQq, userAddress, userEmail, userIsFrezee, userParentId, userRemark, userSpId); SET i = i + 1; end while loop1; END
存储过程写好了, CALL IsertUsers()便可;
函数
问题一:SET一个变量的值后,竟然不能继续DECLARE另一个变量,也就是说DECLARE语句不能写在SET语句以后?oop
例如:spa
CREATE PROCEDURE test() BEGIN DECLARE a VARCHAR(20); set a = "ddd"; DECLARE b VARCHAR(20); END;上面的写法竟然报错,改一改位置:
CREATE PROCEDURE test() BEGIN DECLARE a VARCHAR(20); DECLARE b VARCHAR(20); set a = "ddd"; END;
正确! 难道是我哪儿出问题了,对于这样的设计感到很无奈!
问题二:MySQL链接两个字符竟然用“+”, 还好有设计
concat函数, 多好的,还解决了类型转换。