我想创造一个 stored_procedure
使用以下 sql
代码:
INSERT INTO users (name,surname,email,phone,address_id)
VALUES (name,surname,email,phone,address_id);
SET @GeneratedUserID = LAST_INSERT_ID();
INSERT INTO user_login (username,password_salt,hash_code,users_user_id)
VALUES (username,password_salt,hash_code,@GeneratedUserID );
INSERT INTO user_roles (user_id,role_id)
VALUES (@GeneratedUserID ,1);
但是,我得到一个错误:
MySQL said: #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 @GeneratedUserID = LAST_INSERT_ID(); INSERT INTO user_login (username,pas' at line 4
1条答案
按热度按时间20jt8wwn1#
您很可能没有更改分隔符,但无法确定,因为您没有发布整个代码(请始终这样做)。因此mysql认为,程序在第一个
;
.您的程序应如下所示:
还要注意,您应该选择与列名不同的参数名。最佳做法是使用前缀,如
p_
. 变量也一样。使用前缀,如v_
或者别的什么。