Kapsam: İki tablo. Yeni bir kullanıcı oluşturulduğunda, 2. bir tabloya kaydedilenler hakkında bazı bilgileri vardır (Bu bir tetikleyici kullanılarak yapıldı, beklendiği gibi çalışır). İşte benim masa yapmamın ve ilişkimin bir örneği.MySQL Tetikleyici: Tablodan Sil SONRAKİ SAYFA
Tablo 1->müşterilerin
+-----+---------+-----+
+ id + name + val +
+=====+=========+=====+
+ 37 + george + x +
+-----+---------+-----+
+ 38 + sally + y +
+-----+---------+-----+
Tablo 2 -
+----+-----+----------+
+ id + pid + name +
+----+-----+----------+
+ 1 + 37 + george +
+----+-----+----------+
+ 2 + 38 + sally +
+----+-----+----------+
yönetici patron_info>müşterilerin yönetebilir. Bir kullanıcıyı kaldırmayı seçtiğinde, kullanıcı tablo 1patrons
'dan kaldırılır. Bu noktada, hiçbir şey tablo 2patron_info
'a gerçekleşir.
Tablo 1, silinen bir öğenin silindiği tablo 2'den silmek için bir tetikleyici oluşturmaya çalışıyorum. İşte
DROP TRIGGER IF EXISTS log_patron_delete;
Sonra sonradan tetikleyici oluşturmak için denemek ... Ben (tıpkı havayı temizlemek için) varsa tetiği düşmesi deneyin Başlangıçta ... ne denedim bu. .. Bu noktada
CREATE TRIGGER log_patron_delete AFTER DELETE on patrons
FOR EACH ROW
BEGIN
DELETE FROM patron_info
WHERE patron_info.pid = patrons.id
END
, bir sözdizimi hatası 1046: Check syntax near END on line 6
olsun. Bu noktada hatanın ne olduğunu bilmiyorum. Birkaç farklı varyasyon denedim. Ayrıca, burada bir sınırlayıcı kullanmam gerekiyor mu?
Herkes aklımı kurtarmaya yardım edebilir mi?
Burada hangi yardıma ihtiyacınız var? asıl sorunun nedir –
@vivek_jonam Silme tetiği ateşlenmez. Bu satır 6'da 'END' üzerinde bir sytnax hatası veriyor. Ayrıca, bunu bir 'DELIMETER $$ 'olarak mı yükleyeceğim? – Ohgodwhy
@Ohgodwhy: memcache sorusu hakkında sadece bir not - sadece ekledikten sonra bağlantı kuruldu. Yapmadan önce "İlgili" de yoktu. – zerkms