Aynı Tabloda TRIGGER işlemi ?
trigger su şekilde
DELIMITER $$
CREATE TRIGGER trigger_tablo AFTER DELETE ON tablo
FOR EACH ROW
BEGIN
DELETE FROM tablo WHERE altID = OLD.id;
END$$
DELIMITER ;
tablo sutunları
id | altID | baslik | baslk2
1 0 deneme
2 1 alt baslik alt icerik
tablo bu şekilde 1 nolu id silince altID si 1 olanlarıda normalde
silmesi gerekmiyormu
php tarafında aldığım hata
Can't update table 'tablo' in stored function/trigger
because it is already used by statement which invoked
this stored function/trigger
//aynı hatayı mysql tarafındada alıyorum.
bu trigger nasıl olmalı acaba.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (5)
@abdullahx
normalde bende öyle yapıyorum alt silme işlemlerini bağlantılı silme işlemlerini trigger ile yapıyordum hepde
dedim fazla tablo olması bitanesinie aynı tablo içinde yapayım orda sıkıntı çıkardı :)
arkadaşın dediğini yaptım zaten oda kolaylık daha önce denememiştim tecrübe oldu :)
En güzeli arkadaşın dediği gibi Foreign key kullanmak, tabloları kategorilere ayırıp birbiri ile ilişkili sütunlardan bağlayınca bir bilgiyi sildiğin taktirde onunla bağlantılı olan diğer tablolardaki veriler otomatik olarak silinir. Dersin ne kolaylıklar varmış ben boşuna uğraşmışım bu kadar :) Veri tabanı bütünlüğünü korumanın en etkili yollarından biridir, hatta bence en etkilisidir.
https://www.cozumpark.com/sql-server-uzerinde-veri-butunlugunu-saglama/
biraz daha araştırıcam bakalım eve aynı tabloda bu hata normal gibi duruyor php tarafında yaptım şimdilik ama mysql tarafında kolay oluyordu
kaçamadım bu sefer php tarafından :)))
@admin o tarafından pek bilgim yok biraz araştırıcam teşekkürler
@abdullahx sanada teşekkür ederim kardeşim.