【发布时间】:2012-05-08 06:18:17
【问题描述】:
我有一个非常简单的触发器。我从 Toad for mysql 工具创建它并部署它并且它的工作完美没有任何问题。当我把它交给管理员在生产服务器中部署时,他们遇到了错误。
Phpmyadmin 错误:
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以了解正确的语法使用
第4行的''附近
Mysql 控制台错误:
ERROR 1064 (42000):您的 SQL 语法有错误;检查 与您的 MySQL 服务器版本相对应的手册 在第 1 行的“END”附近使用的语法
当被问及时,他们正在从 phpmyadmin 运行代码,并且他们尝试从 mysql 控制台运行却遇到错误
这真的令人沮丧和恼火,为什么同样的事情是从 GUI 工具运行,而不是从 web 工具或控制台运行。三种不同工具的 3 种不同行为
然后我尝试了同样的事情,我也得到了错误。这让我很惊讶为什么
DROP TRIGGER IF EXISTS TRG_ ;
CREATE TRIGGER TRG_ BEFORE INSERT ON users FOR EACH ROW
BEGIN
DECLARE X INTEGER;
SELECT COUNT(*) into X FROM users;
IF X >= 16 THEN -- CHANGE THIS NUMBER
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'cant create more users';
END IF;
END;
谁能告诉我我做错了什么?我不确定,但我猜它与 delimiter 关键字有关,我从不明白其目的。
【问题讨论】:
标签: mysql phpmyadmin mysql-management