[英]mysql making two categories unique to each other
我有一個名為user_id和symbol的行。 我要這樣做,所以每個user_id只能有一個符號。
這是我為此寫的行
ALTER TABLE `portfolio` ADD UNIQUE (
`user_id` ,
`symbol`
);
但是,這樣做使我也不能再擁有一個user_id。 因此,如果我添加一個user_id = 21且符號= AAA的列,則無法添加另一個user_id = 21且符號= BBB的列。
紐約的想法
以下約束完全符合您的要求:確保每個用戶/符號組合僅出現一次:
ALTER TABLE portfolio ADD UNIQUE (user_id, symbol);
添加約束時的一個好習慣是為它們賦予有意義的名稱:
ALTER TABLE portfolio
ADD CONSTRAINT unq_portfolio_userid_symbol
UNIQUE(user_id, symbol);
這樣,當違反約束時,您知道違反了哪個約束。 如果無法為用戶添加另一個符號,則可能將user_id
(或symbol
)聲明為表上的主鍵或唯一本身,或聲明為另一個唯一列的一部分。
嗨梅南
在這種情況下,您可以使用復合主鍵
ALTER TABLE portfolio add
constraint pkc_portfolio primary key (id, code);
您的ID和代碼組合將不會重復
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.