用于更新行的mysql过程

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

最佳答案

我不确定 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 中具有保留字名称的列/表时,您只需使用(反引号/双引号/方括号而不是引号)

关于用于更新行的mysql过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36449395/

相关文章:

mysql - 选择最短和最长的字符串

mysql - MySQL Cluster 7.3 如何实现 99,999% 的可用性? CAP定理的对立面

android - 同步数据库 Mysql SQLite

mysql - 如何申请自助加入

mysql - 我需要优化mysql数据库中的大数据表

php - Mysqli 输出 10 个随机行

MySQL - 类名称为 2 列

如果另一个表中的列为零,则 MySQL 选择列

mysql - 案例 When 案例之间的联合

mysql - 从 View 中 SELECT * INTO OUTFILE 不起作用,但基础查询工作正常 INTO OUTFILE