我知道我們可以添加多個NULL值,但爲什麼SQL只允許一個null?爲什麼唯一約束只允許一個空值?
回答
空 - 是等價值,所以對於獨特的約束它應該也是一個。但是,這不是支持所有數據庫。 MS SQL Server支持這個,MySQL支持多個空值。
多個NULL值我很驚訝的SQLServer這是否爲空的字面意思是「價值尚未設置」中的SQL。 – Powerlord
這個假設是不正確的。有了一個獨特的約束,而沒有別的,你可以有任意多的null
。
見,例如,This SQLFiddle。
正確,這就是「SQL」(如在「SQL標準」中)如何定義此要求 –
不正確。不同的數據庫以不同的方式處理唯一約束中的NULL值。 –
- 1. 唯一約束允許空的一列中的Oracle
- 2. ORACLE約束允許爲空值,如果
- 3. 唯一約束值
- 4. 爲什麼printf空格填充只允許一個空格?
- 5. alter table:只允許唯一或空
- 6. 列約束:只允許增長值
- 7. 唯一性約束導致與空值
- 8. 如何修改唯一約束,允許一次性的例外
- 9. 唯一約束
- 10. 唯一約束列只能包含一個NULL值
- 11. SQLite多列唯一約束允許重複
- 12. PostgreSQL的唯一約束,允許雙向組合
- 13. 唯一約束Nhibernate
- 14. OpenERP唯一約束
- 15. oracle唯一約束
- 16. 唯一約束JayData
- 17. 唯一約束(SchemaName.DATA1_PK)
- 18. 如何爲2個可爲空的列添加唯一約束?
- 19. PostgreSQL的檢查約束,只允許一兩個布爾變量爲True
- 20. 爲什麼oracle允許每個表只有一個LONG列?
- 21. 爲什麼這隻允許一個類型不是兩個? php
- 22. 可空列的唯一約束
- 23. 唯一約束違反了空表
- 24. 非空並且是唯一約束
- 25. Postgresql - 約束表中只有一行,不允許其他標誌
- 26. 唯一約束在NON-NULL列上的唯一約束
- 27. 「JSON標準只允許一個頂級值」是什麼?
- 28. 只允許非唯一組合
- 29. 唯一約束在一個RESTful架構
- 30. 唯一約束vs唯一索引
如果以「SQL」你的意思是SQL標準:它允許一個獨特的約束 –