v2.5.2
Giriş yap

Mysql Trigger Hatası ve Çözümü

darkwob
278 defa görüntülendi

Mysql'de bir trigger oluşturmaya çalışıyorum ancak sürekli olarak aynı hatayı alıyorum. SQL sorgusunda herhangi bir sorun göremediğim için ne yapacağımı bilmiyorum. Ayrıca hata mesajında, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line" şeklinde bir hata mesajı görüyorum.

İşte oluşturmak istediğim trigger:

CREATE TRIGGER set_permanent_ban
AFTER INSERT ON sb_bans
FOR EACH ROW
BEGIN
    DECLARE ban_count INT;
    SET ban_count = (SELECT COUNT(*) FROM sb_bans WHERE player_id = NEW.player_id AND ban_type = 0 AND ban_reason LIKE '%SMAC 0.8.7.3: AutoTrigger Detection: Auto-Fire%');
    IF ban_count >= 3 THEN
        UPDATE sb_bans SET ban_type = 1, ban_length = 0 WHERE ban_id = NEW.ban_id;
    END IF;
END;
Cevap yaz
Cevaplar (1)
tayfunerbilen
406 gün önce

DELIMITER belirlemen gerekiyor. Yani şu kodu çalıştırırsan sorunun kalmaz:

DELIMITER $$

CREATE TRIGGER set_permanent_ban
AFTER INSERT ON sb_bans
FOR EACH ROW
BEGIN
    DECLARE ban_count INT;
    
    SET ban_count = (SELECT COUNT(*) FROM sb_bans WHERE player_id = NEW.player_id AND ban_type = 0 AND ban_reason LIKE '%SMAC 0.8.7.3: AutoTrigger Detection: Auto-Fire%');
    IF ban_count >= 3 THEN
        UPDATE sb_bans SET ban_type = 1, ban_length = 0 WHERE ban_id = NEW.ban_id;
    END IF;

END $$

DELIMITER ;