MySQL #1064 : declare a variable

标签 mysql triggers

我需要在 MySQL 中声明变量。这是我到目前为止所拥有的。

CREATE TRIGGER upd
BEFORE UPDATE ON chats FOR EACH ROW
BEGIN
    DECLARE my_cursor CURSOR FOR SELECT name FROM messages;
END

从逻辑上讲,它接缝不错。但是有一个奇怪的错误 即

SQL查询:

CREATE TRIGGER upd
    BEFORE UPDATE ON chats FOR EACH ROW
    BEGIN
        DECLARE my_cursor CURSOR FOR SELECT name FROM messages;

MySQL 说:

#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 '' at line 4 

最佳答案

这行得通。当它被欺骗关闭时,将很乐意将其删除。

它只是缺少分隔符包装 block 。

drop trigger if exists upd;

delimiter $$
CREATE TRIGGER upd
BEFORE UPDATE ON chats FOR EACH ROW
BEGIN
    DECLARE vapenid INT;
END;
$$
delimiter ;

关于MySQL #1064 : declare a variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34177885/

相关文章:

php - 在 SQL 和 MySQL 中创建存储过程有什么好处?

mysql - 用于检查范围的 SQL 查询

mysql - 如何通过比较两个表中的列来填充外键

用于使用 Pandas 导入 .csv to_sql 的 Python 脚本失败,除非我 DROP TRIGGER 更新物化 View

php - 如何查找实体 ManyToMany

c# - 如何使用正则表达式匹配文本框中给定的数据库和表名

MySQL 触发器语法错误

MYSQL触发器错误1064

sql-server - 如何在 SQL Server 表中添加 “last modified” 和 "created"列?

MySQL : Create trigger add two column value