限制在phpmyadmin wamp中将记录插入表中

时间:2015-08-04 08:49:17

标签: php mysql phpmyadmin

我正在使用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;




1 个答案:

答案 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;