我正在使用 WAMP。下面是限制表中记录插入的触发器的代码。它给出错误 #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在“TRIGGER 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;
最佳答案
正如错误消息所述,错误是代码中存在单词trigger
的位置,并且位于单词create 或replace
的旁边。
因此,您需要在mysql中使用DROP
,而不是replace
,例如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;
关于php - 限制将记录插入到 phpmyadmin wamp 中的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31804701/