0
我對MySQL不太瞭解,但我試圖創建一個觸發器,以便每當插入行時,如果表中的行總數大於10,則刪除某個行。根據行數執行查詢?
我在尋找什麼,沒有觸發的語法,是這樣的:
IF (SELECT COUNT(*) FROM table) > 10 THEN
//do some stuff
END IF;
但是似乎並沒有被接受的語法。我應該如何去做這件事?
我對MySQL不太瞭解,但我試圖創建一個觸發器,以便每當插入行時,如果表中的行總數大於10,則刪除某個行。根據行數執行查詢?
我在尋找什麼,沒有觸發的語法,是這樣的:
IF (SELECT COUNT(*) FROM table) > 10 THEN
//do some stuff
END IF;
但是似乎並沒有被接受的語法。我應該如何去做這件事?
DELIMITER &&
CREATE TRIGGER trigger_name AFTER INSERT ON table_name FOR EACH ROW
BEGIN
DECLARE x INT;
SET x = (SELECT count(*) FROM table_name);
IF x > 10 THEN
DELETE FROM table_name where condition;
END IF;
END&&
DELIMITER ;
select count(1) into @cnt from table;
if (@cnt > 10) then
// do some stuff
end if;
,而不是@cnt
可以用過聲明的變量
使我有以下錯誤:#1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用「」附近before_insert_wall「BEFORE INSERT ON‘牆’每一行的正確的語法手冊 BEGIN x聲明」在1號線 – styke
不要在觸發器名使用引號。順便說一下,有關更多詳細信息,請查看http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html – bhuang3
不,仍然顯示錯誤。 – styke