可能重复:
How do I specify unique constraint for multiple columns in MySQL?
我是MySQL的新手,我有一个表格,我正在转换为MySQL,其中包含帐户的“订单指南”,这是帐户通常订购的所有项目。我需要防止在一个帐户的项目(产品编号)的情况下插入已经在订单指南表中,这取决于两个字段的唯一性的组合。订单指南表中数据的简化示例:
uID Account_Num Prod_Num
0 1000 2000
1 1000 2010
2 1000 2020
3 1000 2030
4 1001 2000
5 1001 2010
6 1001 2020
7 1001 2021
我不能只将“Account_Num”和“Prod_Num”字段设为唯一。我需要一种设置规则或方法来指定“Account_Num”和“Prod_Num”的组合是否为唯一允许插入的方法。 uID字段是唯一的自动增量字段。这可能吗?
答案 0 :(得分:10)
您会很高兴知道索引可以是多列的: - )
ALTER TABLE my_table ADD UNIQUE account_prod (Account_Num, Prod_Num);
答案 1 :(得分:1)
create unique index mytable_idx1 on mytable(Account_Num, Prod_Num);
答案 2 :(得分:0)
不确定
看看
INSERT INTO <yourtable> (cols)
SELECT cols FROM <yourtable2>, <yourtable> where <yourcondition>
确保select仅返回新条目。