2015-01-04 19 views
1

我一直在尋找跨網絡和書籍的信息,似乎無法找到關於此的任何信息。根據我對主鍵的理解,這是不可能的。但是,表中的所有列都可以用作組合主鍵。通過這個我的意思是我有一個6列的表可以將所有六列用作組合主鍵。數據庫關係中的組合主鍵

回答

0

在Oracle中,你可以這樣做:

alter table table_name add constraint table_name_pk primary key(column1, column2, column3, column4, column5, column6); 

在Oracle中,複合主鍵約束限制爲32列。

請參閱本:

http://docs.oracle.com/cd/B10500_01/server.920/a96524/c22integ.htm

+0

所以我有一個只有6列的表格,所有六列可以結合在一起?看起來很奇怪 – shemj

+0

是的,試一下簡單的例子:create table table_name(a VARCHAR(2), b VARCHAR(2),c VARCHAR(2),d VARCHAR(2),e VARCHAR(2),f VARCHAR(2), 約束table_name_pk主鍵(a,b,c,d,e,f)); – Denorm

+0

是的,這與'bridging'表http://en.wikipedia.org/wiki/Junction_table相當常見,通常用於對具有許多基數的表進行建模。 – AntC

1

這是很可能爲表只包括一個關鍵的,並沒有非關鍵屬性。在語義上,這樣的表格標識實體的存在,而不記錄關於它們的任何附加信息。例子可能是授權訪問系統或表格的IP地址表,或者在N維空間中協調標識點。爲了在這樣的表中更新,刪除或檢索單個元組,必須指定元組的全部值。