簡體   English   中英

mysql使兩個類別彼此唯一

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM