我正在使用WAMP。以下是限制表中记录插入的触发器代码。它会出现错误#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在&TRAGGER abc附近使用正确的语法。
请帮帮我。
CREATE OR REPLACE TRIGGER abc
BEFORE INSERT
ON my_table
FOR EACH ROW
DECLARE
v_row_cnt TINYINT(3);
BEGIN
SELECT COUNT(*) INTO v_row_cnt FROM login_db;
IF v_row_cnt > 10 THEN
DELETE FROM my_table ORDER BY id desc LIMIT 1;
END IF;
END;

答案 0 :(得分:0)
错误消息状态错误是代码中存在单词trigger
的位置,它位于单词create or replace
旁边。
所以在replace
之类的mysql中需要DROP
而不是DROP TRIGGER IF EXISTS abc
。是的必须使用DELIMITER
,请参阅以下两个示例
DROP TRIGGER IF EXISTS abc;
DELIMITER |
CREATE TRIGGER abc
BEGIN
IF (SELECT COUNT(*) FROM login_db) > 10 THEN //method 3
DELETE FROM my_table ORDER BY id desc LIMIT 1;
END IF;
END |
DELIMITER;
或
DELIMITER //
DROP TRIGGER IF EXISTS abc//
CREATE TRIGGER abc
BEGIN
set @somvar = (SELECT COUNT(*) FROM login_db);
IF @somvar > 10 THEN
DELETE FROM my_table ORDER BY id desc LIMIT 1;
END IF;
END //
DELIMITER;