i've tried to make an MYSQL Trigger on Adminer, but it doesn't work. Here is my Code:
CREATE TRIGGER handle100kRows BEFORE INSERT ON `4013834123456`
FOR EACH ROW
BEGIN
IF (SELECT COUNT(*) FROM `4013834123456`) = "100000" THEN BEGIN
DELETE FROM 4013834123456 ORDER BY id LIMIT 1
END
END IF
END;
Following errors appear:(1064): (1064): Syntax error near '4013834123456 ORDER BY id LIMIT 1 END END IF END' at line 6
Ive just tried it with ; on the END's but then appears more errors... I work with Adminer 4.1.0 an MySQL Database! Thx for help!
UPDATE, now it works, with delimiter:
delimiter |
CREATE TRIGGER handle100kRows BEFORE INSERT ON `4013834123456`
FOR EACH ROW
BEGIN
IF (SELECT COUNT(*) FROM `4013834123456`) = "100000" THEN
DELETE FROM `4013834123456` ORDER BY id LIMIT 1;
END IF;
END;
delimiter;
You forgot the escape the table name 4013834123456
with backticks.
Also you have and end
too much.
delimiter |
CREATE TRIGGER handle100kRows BEFORE INSERT ON `4013834123456`
FOR EACH ROW
BEGIN
IF (SELECT COUNT(*) FROM `4013834123456`) = "100000" THEN
DELETE FROM `4013834123456` ORDER BY id LIMIT 1;
END IF;
END
|
delimiter ;