用于更新行的mysql过程

时间:2016-04-06 11:10:14

标签: mysql

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的任何错误消息

1 个答案:

答案 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 /双引号/括号而不是引号)