[英]How can I enforce uniqueness on a combination of two columns in a database table?
[英]How can I enforce compound uniqueness in MySQL?
我遇到過一種情況,我希望確保表的復合元素是唯一的。 例如:
Table (
id char(36) primary key,
fieldA varChar(12) not null,
fieldB varChar(36) not null
)
我不希望fieldA和fieldB成為復合主鍵,因為它們經常更改,並且'id'在整個系統中用作引用。
fieldA和fieldB本身並不是唯一的,但它們的組合必須是唯一的。 例如,{{1,Matt,Jones},{2,David,Jones},{3,Matt,Smith}}將是有效數據,但{{1,Matt,Jones},{2,Matt,Jones }} 不會是。
您可以在兩個字段上添加UNIQUE鍵約束:
ALTER TABLE `table_name` ADD UNIQUE (
`fieldA`,
`fieldB`
);
在表定義中添加UNIQUE鍵:
Table (
id char(36) primary key,
fieldA varChar(12) not null,
fieldB varChar(36) not null,
UNIQUE fieldA_fieldB (fieldA, fieldB)
)
ALTER Table ADD UNIQUE ( fieldA, fieldB );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.