6
A
回答
2
由於您使用的是MyISAM(或INNODB)存儲引擎,因此簡短回答是否定的。即使有多個空值,多個空字符串也不適用於唯一索引約束。如果你想要一個只有SQL的解決方案,最好的辦法是在ISBN字段上創建一個常規索引,然後使用一個存儲過程作爲插入代理 - 如果不爲空或爲空,則檢查唯一性。
如果只是爲空值,你的工作,這裏是一個基本的創建:
CREATE TABLE `books` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`isbn` int(13) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `isbn` (`isbn`)
)
只是注意......還記得「13」 INT指定僅僅是數字的個數在返回時,它會顯示一個查詢,而不是整數的大小。
3
你可以使用這樣的事情,
ALTER TABLE tbl_name ADD UNIQUE INDEX_NAME(column_list中):
此語句創建一個索引其值必須是唯一的(與NULL值的異常,它可以出現多次)。請參閱MySQL INDEXES。
相關問題
- 1. 的MySQL創建索引名與空白唯一索引
- 2. Contraint - 唯一或空
- 3. 唯一索引的視圖與空列
- 4. 可空列上的唯一索引
- 5. Mysql唯一值或空字符串
- 6. 集羣或唯一索引MySql DB?
- 7. 唯一索引,varchar列和(空格)空格的行爲
- 8. '唯一'的唯一密鑰或索引
- 9. 唯一索引或唯一鍵?
- 10. MySQL唯一索引錯誤?
- 11. MySQL唯一索引設計
- 12. MySQL更新唯一索引
- 13. MySQL - 多列唯一索引
- 14. MySQL的:從唯一索引
- 15. MySQL唯一和索引
- 16. MySQL空間索引與sqlalchemy?
- 17. 加入空間mysql索引
- 18. 唯一索引與非唯一索引
- 19. MySQL:刪除主鍵會刪除唯一的約束和/或索引嗎?
- 20. 當兩列之一爲空時的唯一索引
- 21. JSON中的空字段:空引號,空值或刪除字段?
- 22. 空間索引
- 23. mongoDB中的唯一索引3.2忽略空值
- 24. Oracle:創建唯一索引,但忽略空值
- 25. 沒有索引的MongoDB唯一非空字段
- 26. SQL精簡唯一索引允許空值
- 27. 實體框架GetValidationErrors爲唯一索引爲空
- 28. (TSQL)nvarchar(200)稀疏空列上的唯一索引
- 29. 在MongoDB中添加唯一索引,忽略空值
- 30. 在遷移中的唯一索引列上添加空約束
我沒有NULL的罰款。設置它,我會簡單地設置INT(13)DEFAULT NULL,並應該工作? – nick
@nick是的,看到我在上面的問題中添加的create語句,您也可以在ALTER TABLE中使用它。 – Ray