我使用列名ID的table1,並且使用列名ID的table2。表1中的Id列是主鍵,但在第二個表中不是,但是我想向table1.ID列添加一個限制,不接受其他table2.ID以外的值。這是否可能?如果是這樣,這怎麼能在SQL Server中完成?將約束添加到引用另一個表的列的列
1
A
回答
0
是的,它是... 你必須做出一對多的關係 - FOREIGN KEY約束。
你可以通過做一個ALTER語句來做到這一點。它可以做,如果沒有限制被違反
0
以下是創建一個外鍵關係的一個例子:
create table Table1 (id int primary key)
create table Table2 (id int foreign key references Table1(id))
在數據庫的設計,這就是所謂的表2和表1之間的「一個一對多」的關係。 Table1中的一行可能與表2中的許多行有關。 Table1中的一行可能只與Table2中的一行有關。
0
我想一個contraint添加到table1.ID 列不接受值之外 腋臭table2.ID
表一個標識列是主鍵
這是隻有在Table2中的ID列被定義爲唯一鍵或主鍵時纔可以使用外鍵約束。
這將工作:
create table Table2 (id int unique)
create table Table1 (id int primary key foreign key references Table2(id))
這也將工作:
create table Table2 (id int primary key)
create table Table1 (id int primary key foreign key references Table2(id))
這不起作用:
create table Table2 (id int)
create table Table1 (id int primary key foreign key references Table2(id))
0
您參考第一表列 「ID」 爲第二張表的外鍵。
相關問題
- 1. 將列添加到約束表中
- 2. 添加約束至表引用的另一個表
- 3. 將約束添加到mysql中的列
- 4. 添加唯一約束列
- 5. 從另一個表中添加列值作爲默認約束
- 6. 將NOT NULL約束添加到列
- 7. 如何使用另一個表中的列添加唯一約束?
- 8. SQL約束檢查另一個表列
- 9. 將列表中的元素添加到另一個列表中
- 10. 基於另一個表列的MYSQL表列約束
- 11. 將約束添加到來自Java列表的第一個對象的字段
- 12. 插入一列從一個表到另一個約束
- 13. 根據另一列的值在一列上添加多個CHECK約束
- 14. 將單個列表項添加到另一個列表
- 15. 開始SQL - 將一列的值添加到另一個表中的另一列
- 16. 將約束添加到constraintLayout約束類似於另一個孩子
- 17. 將一個表的列作爲列的值添加到另一個表
- 18. MySQL爲來自多個表的列添加唯一約束?
- 19. 將列表項目隨機添加到另一個列表
- 20. 如何將對象列表添加到另一個列表中
- 21. 將一個數據表的列添加到另一個
- 22. MySql:將一列添加到另一列
- 23. 添加約束複製列
- 24. 將一個列表添加到另一個列表中的元素
- 25. 另一個表的列上的唯一約束
- 26. 在遷移中的唯一索引列上添加空約束
- 27. 將列從一個表添加到另一個表
- 28. 阿爾特表添加列和約束
- 29. 一系列約束是另一系列的一個子集嗎?
- 30. 將單個表格的單列添加到另一個表格的多列