Kullanım " için;UPDATE CASCADE"
"ON DELETE CASCADE" düzenli olarak ama hiç "UPDATE CASCADE" yararlı olacak ne kadar emin değilim. ÜZERİNDE kullanmak
Tartışmanın iyiliği için bazı kod görelim.
CREATE TABLE parent (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id)
);
CREATE TABLE child (
id INT NOT NULL AUTO_INCREMENT, parent_id INT,
INDEX par_ind (parent_id),
FOREIGN KEY (parent_id)
REFERENCES parent(id)
ON DELETE CASCADE
);
"ON DELETE CASCADE", eğer bir ebeveyn ile 'id
' ile çocuğun kaydı silinir '3 **' otomatik olarak silinir. Bu senin için sorun olmamalı.
(1) Bu" aynı şey ne zaman 'id
' üst güncellenir? yapacak "UPDATE CASCADE anlamına gelir
(2) Eğer (1) doğru, demek ki ihtiyac yoktur. kullan "ON UPDATE CASCADE" 'parent.id
' değildir güncellenebilir (ya da asla güncellendi) gibi. 'AUTO_INCREMENT'
ya da her zaman ayarlamak için zaman DAMGASI. Bu doğru mu?
(3) (2) kullanmalıyız şey doğru değil, "UPDATE CASCADE".
(4) ben Ne olursa (nedense) update 'child.parent_ind
' bir şey yok yok, otomatik olarak silinir.
Evet, biliyorum, ama istiyorum anlamak için test programmically olabilir yukarıdaki soruyu bazıları, " eğer herhangi bir Veritabanı veya satıcı bağımlı olduğunu da biliyorum.
Biraz ışık tutmak lütfen.
CEVAP
Eğer birincil anahtar değeri otomatik olarak artan bir kimlik ise, UPDATE CASCADE için gerçek bir kullanım olurdu doğru.
Ancak, birincil anahtar, 10 basamaklı UPC barkod ve genişleme nedeniyle, 13 basamaklı UPC barkod olarak değiştirmeniz gerektiğini söylüyor. GÜNCELLEME bu durumda, ÇAĞLAYAN değer, yabancı anahtar başvuruları bu değer ve tablo buna göre değişir birincil anahtarı değiştirmek için izin verecek.
Ana tabloda olmayan bir şey için çocuğun KİMLİĞİNİ değiştirirseniz #4--referans (ve tutarlılığı var), yabancı anahtar bir hata almalısınız.
Vermeden önce depodan güncellenecektir...
Studio Android:/nasıl update " kal...
alma "ölümcül: git deposu değil: ...
Kullanım " için tamam mı;klasik" ...
Nasıl istemci KİMLİĞİ bulmak için ajax...