MySQL veritabanındaki birincil anahtarlar için "NOT NULL" kısıtlamalarını bildirmek gerekli midir? Birincil anahtar NULL değerlerine sahip olamaz, çünkü auto_increments zaten ve alan kaydını otomatik olarak doldurur. Yani, bu, birincil anahtarlarım için "NOT NULL" kısıtlamasını kaldırabileceğim anlamına mı geliyor?MySQL - Ana anahtarlar için "NULL değil" kısıtlaması var mı?
cevap
(Sizin soru etiketlidir olarak) MySQL içinde, bunu açıkça yapmanız gerekmez. the manual Gönderen:
Eğer sen netlik için istemeyebilirsiniz anlamına gelmez etmek yok mu sırf TabiiA
PRIMARY KEY
tüm anahtar sütunlarıNOT NULL
olarak tanımlanması gerekir benzersiz endeksidir. AçıkçaNOT NULL
olarak bildirilmezlerse, MySQL onları çok gizli (ve sessizce) olarak bildirir.
, vb
Sadece PK sütunlarını "NULL" olarak değil, aynı zamanda "NULL" olarak nitelendirildiyse, onları "NULL" olarak geçersiz kılar/değiştirir. –
Evet ve hayır Sen, "boş değil" kaldırmasını edebilirsiniz kısıtlamayı kaldırmaz. Şahsen onları içeride bırakırdım, onları dışarı çıkarmaya değecek hiçbir şey kazanamazsın.
Hayır, yapamazsınız. Bir sütun birincil anahtarın parçasıysa, Boş Değil Not kısıtlaması boş olarak değiştirilemez. –
@ypercube "NULL olarak değiştir" demedi, "NOT NULL" u kaldır dedi. Sadece NULL olmayan DDL metninde değil, yürürlükte olduğu anlamına gelmez. –
@Branko: "Tanımdan" NOT NULL "ifadesini kaldırması gerekiyorsa, evet, kabul ediyorum. Tekrar okuma, haklısın, muhtemelen ne anlama geliyordu. –
Birincil anahtar, null sütunları içermemelidir. auto_increment
bir denetim kısıtlaması değildir (varsayılan bir kısıtlamadır), bu nedenle'un varlığından bağımsız olarak birincil anahtarın bir parçası olan sütunun tanımından not null
'u kaldıramazsınız. Mysql'deki birincil anahtar tablosunu oluştururken, not null
yazmanız gerekmez, çünkü motor bu kısıtlamayı otomatik olarak ekler.
Sütunu açıkça boş olarak bildirmemize gerek yoktur, çünkü birincil anahtar kısıtlaması sütunu NULL DEĞİL yapar. Oracle’ı kontrol ettim.
- 1. % INC platformuna bağlı anahtarlar ve değerler var mı, değil mi?
- 2. SQL Server NULL kısıtlaması
- 3. Yabancı Anahtarlar ve MySQL Hataları
- 4. MYSQL - DEĞİL vs var = yanlış
- 5. SQL/MySQL DEĞİL NULL vs NOT
- 6. MySql için bir Profiler karşılığı var mı?
- 7. 'NULL kısıtlaması başarısız' Scaffold oluşturduktan sonra
- 8. null değişkenin anahtarı eşit değil null değil error
- 9. Redshift - NOT NULL kısıtlaması nasıl kaldırılır?
- 10. Twig null coletce operatörü var mı?
- 11. Memcache verileri sona erdiğinde anahtarlar kaldırıldı mı?
- 12. null değeri benzersiz değil
- 13. güncelleme bütün NULL alanlar MySQL
- 14. facebook tuvalinde ana pencereyi itmek için bir yol var mı?
- 15. Windows'ta bilinen ana bilgisayarlar için kesin bir yol var mı?
- 16. MySQL Verileri İçe Aktarma - Yabancı anahtar kısıtlaması hatası eklenemiyor,
- 17. Psql null hatası değil, değer boş değil
- 18. MySQL Kısa Devresi IF() işlevi var mı?
- 19. Sütun değerinin NULL olup olmadığını veya Mysql
- 20. MySQL için pg_trgm (PostgreSQL) gibi bir Trigram işlevi var mı?
- 21. nodejs'de saklı yordamları destekleyen mysql için bir sürücü var mı?
- 22. MySQL veritabanları için Redgate SQL Compare eşdeğeri var mı?
- 23. MongoDB'de olduğu gibi MySQL için bir TTL var mı?
- 24. Std :: thread :: id varsayılan yapıcısı değil "NULL" kimliği oluşturmalı mı?
- 25. DEFAULT NULL ve CHECKBOX NULL mysql arasındaki fark nedir?
- 26. PHP mysql PDO NULL değeri
- 27. Dizin var mı, yoksa linux değil mi?
- 28. Neden "# değil" anahtar kelimesi var mı?
- 29. En büyük değil null sütun
- 30. C# 'daki Sözlük <> gibi bir sınıf var mı, sadece anahtarlar için, değerler yok mu?
Sütunda bulunanlar _does değil hurt_ ve tablo tanımını okurken _explicit_ şeyler yapar. Gelecekte, birincil anahtar kısıtlamasını değiştirirseniz, hala "NOT NULL" kısıtlamasına sahip olursunuz. – Oded
İçinde olmaması gereken iki kavram var. Bir birincil anahtarın bir otomatik arttırma sütunu olması gerekmez, ne de (bir tablonun bir tane varsa) bir birincil arttırma sütununun birincil anahtar olması gerekir. Sadece birlikte kullanılmaları * eğilimindikleri için aynı şey oldukları anlamına gelmez. –