SQL中的唯一列可以是auto_increment,... 即,如果我們有一個數據庫表,它具有帶有標識(1,1)的主鍵列「id」。那麼,我們可以使用UNIQUE約束和IDENTITY(1,1)的其他列嗎?SQL中的唯一列可以是auto_increment
回答
您每個表只能有一個標識列,但您可以擁有任意數量的唯一約束(或索引)。
實際上,如果您將int標識列用作主鍵,那麼強烈建議您在表上至少再添加一個唯一索引。
原因是,使用代理主鍵而不在自然鍵上強制實施唯一性意味着您的數據庫無法正確執行數據完整性。 (Bonus reading - Natural vs. Surrogate Keys in SQL Server : Getting the Proper Perspective)
順便說一句,列是標識列的事實並不意味着它是唯一的。它只會是唯一的,只要沒有人混淆 - 身份列可以使用set identity_insert on
插入顯式值,並且可以使用DBCC CHECKIDENT
sql命令重新接種。
謝謝..爲答案 – mohd
[很高興幫助: - )](http://meta.stackoverflow.com/questions/291325/how-to-show-欣賞用戶在堆棧溢出/ 291327#291327) –
- 1. SQL查詢以確定列中的值是唯一的
- 2. 是否可以確保唯一郵件位於rabbitmq隊列中?
- 3. Oracle sql - 我們可以在同一個表中有2個唯一的列嗎
- 4. SQL Server唯一列ID的
- 5. AUTO_INCREMENT是否可以安全地用於MySQL中的BEFORE TRIGGER中
- 6. PL \ SQL從列1中選擇第一列,其中列2是唯一的
- 7. 我可以在具有AUTO_INCREMENT屬性的列中使用零嗎?
- 8. 外鍵列是否可以引用父表中包含NULL的唯一列?
- 9. SQL Server中的可逆唯一約束
- 10. SQL約束:非唯一列中的唯一值
- 11. oracle中的多列表中的一列的唯一值sql
- 12. sql唯一映射列
- 13. SQL多個唯一列
- 14. SQL Server - 根據另一列強制一列中的唯一性
- 15. 我可以在同一個表中有兩個唯一列嗎?
- 16. auto_increment列爲一組行嗎?
- 17. 在SQL中創建唯一列表
- 18. My SQL AUTO_INCREMENT在輔助列上
- 19. Typemock是唯一可以模擬Linq To SQL Table類的框架嗎?
- 20. SQL:更新基於列的唯一行
- 21. 2列組合的SQL唯一約束
- 22. 如何將auto_increment添加到SQL Server 2008中的列中
- 23. SQL Server - 如何跨多列創建唯一約束,其中一列是VARCHAR
- 24. 我可以找出下一個使用的auto_increment嗎?
- 25. sql - 是否可以根據另一列中的值設置列值?
- 26. 列在ORDER BY列表中必須是唯一的SQL命令通過
- 27. 如何設置VS2010 SQL表列是唯一的?
- 28. SQL上多列是唯一的條件約束
- 29. 計算兩列其中一列是唯一的
- 30. SQL Server中的1個表中的每列的唯一結果
幾個問題,你爲什麼會需要相同的兩列數據,任何具體的理由 – Joby
這似乎類似於[標識列的StackOverflow(HTTP://計算器。 com/questions/349092/can-a-sql-server-table-have-two-identity-columns) – Joby
ok讓我們更改數據,IDENTITY(500,1)... :),但無論如何,下面的答案將闡明我們不能有兩列有「IDENTITY」 – mohd