USE `sakila`;
DROP procedure IF EXISTS `change_user_name`;
DELIMITER $$
USE `sakila`$$
CREATE PROCEDURE `change_user_name` (actor_id int, first_name varchar(45), last_name varchar(45))
BEGIN
UPDATE actor SET first_name='first_name', last_name='last_name' WHERE actor_id='actor_id';
END$$
DELIMITER ;
为什么此过程不起作用,我没有收到来自mysql workbench的任何错误消息
答案 0 :(得分:2)
我不确定DELIMITER
部分,但对于函数它应该是这样的:
CREATE PROCEDURE `change_user_name` (actor_id_in int, first_name_in varchar(45), last_name_in varchar(45))
BEGIN
UPDATE actor
SET first_name=first_name_in,
last_name=last_name_in
WHERE actor_id=actor_id_in;
请注意,当您在两个引用'example'中指定文本时,它会将其视为字符串,而不是列。在处理DBMS中具有保留字名称的列/表时,您只需使用(返回tic /双引号/括号而不是引号)