Bileşen veri tabanım var. Her bileşen belirli bir tipte. Bu, bir bileşenle bir tür arasında çoktan-bir ilişki olduğu anlamına gelir. Bir türü sildiğimde, bu tür bir yabancı anahtar olan tüm bileşenleri silmek istiyorum. Ancak yanılmıyorsam, bileşen silindiğinde, çağlayan silme türü siler. Açıkladığım şeyi yapmanın bir yolu var mı?Mysql'deki silme kaskadında nasıl kullanılır?
cevap
Bileşen tablonuza neler yazacağınız.
CREATE TABLE `components` (
`id` int(10) unsigned NOT NULL auto_increment,
`typeId` int(10) unsigned NOT NULL,
`moreInfo` VARCHAR(32),
-- etc
PRIMARY KEY (`id`),
KEY `type` (`typeId`)
CONSTRAINT `myForeignKey` FOREIGN KEY (`typeId`)
REFERENCES `types` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
)
Sadece InnoDB depolama motoru kullanmak gerekir unutmayın: Varsayılan MyISAM depolama motor yabancı anahtarları desteklemez.
Yabancı Anahtar kısıtlamalarınızı ON DELETE CASCADE olarak tanımlamanız gerekir.
Not: InnoDB depolama motorunu kullanmanız gerekiyor, varsayılan olarak MyISAM depolama altyapısı yabancı anahtar ilişkilerini desteklemiyor.
T1 İÇ DAN T1, T2 SİL
CREATE TABLE `table2` (
`id` int(11) NOT NULL auto_increment,
`name` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `ids` (`ids`)
CONSTRAINT `foreign` FOREIGN KEY (`ids`)
REFERENCES `table2` (`ids`) ON DELETE CASCADE ON UPDATE CASCADE
)
kullanımı bu sql T1.key = T2.key AÇIK T2 JOIN NEREDE durum
Bu, op tarafından sorulduğu gibi 'CASCADE' işlevini kullanmaz. – displayname
Ama mevcut veritabanı yapısını güncellemeden sorunu çözüyor. –
- 1. ios UITableView silme modunu silme/yeniden düzenleme, silme simgesi silme
- 2. tableView'ın allowMultipleSelectionDuringEditing özelliği YES olduğunda silme-silme işlemini nasıl alabilirim?
- 3. Özellik dosyasından bir girişi silme
- 4. AJAX silme işlemlerini raylarda rahatlıkla silme
- 5. Sürekli Silme Düğmesi nasıl programlanır?
- 6. Objectify'da basamaklı silme nasıl uygulanır?
- 7. Doctrine2 silme sorgusu nasıl yazılır
- 8. EditText yayılma alanındaki silme düğmesinin üzerindeyse silme
- 9. C++ hata oluşsa bile silme silme
- 10. Doktrin varlıkları silme işlemi silme, performans karşılaştırması
- 11. Min-Max yığın silme öğesi silme
- 12. JSON Silme özelliği kaynak değişkeninde silme de
- 13. Nasıl kullanılır ve nasıl kullanılır zend_pdf bağımsız
- 14. MySQL'de değişkenler nasıl kullanılır ve nasıl kullanılır?
- 15. Dize numaralarını silme
- 16. Animasyondan sonra kontrolü silme
- 17. Dizindeki Dosyaları Silme
- 18. NSString'ten sözcük silme
- 19. Referanslar için Cascade Silme veya Silme için Seçenek
- 20. Python: öbekten öğe silme
- 21. Java'da Tür Silme
- 22. Xcode projesinden Github'u silme
- 23. Kiril başlıklı silme işlemi
- 24. Ruby silme dizinleri
- 25. Silme .rbenv, Linux'tan
- 26. Azure Depolama Alanı'nı Silme
- 27. PHP'de bir üstbilgi silme
- 28. Metin dosyasının içeriğini silme
- 29. Angular.js başlıklarından silme
- 30. Gözlemlenebilir koleksiyondan silme
NB, GÜNCELLEME CASCADE muhtemelen kötü bir fikir eğer olduğunu ÜZERİNE Birincil anahtarı bağlamak için kullanıyorsunuz çünkü değişmez olmalı ve buna dayanarak veritabanı yeniden tasarlanmasını gerektirebilir, ama sanırım bunu benzersiz ama birincil olmayan bir yabancı anahtarla bağlarsanız tamamdır. – ThinkBonobo