列中的唯一值,但每个关联的外键只有唯一值:MySQL

时间:2012-09-28 05:33:22

标签: mysql sql unique

几周前我问this question。从现在到现在,我已经转移到了MySQL,并且遗憾的是没有转移解决方案。

这些列只是被标记为需要唯一,而不是使comp_owner_id, comp_name对唯一。解决这个问题的正确方法是什么?

我正在使用带有InnoDB表的MySQL 5.1。

2 个答案:

答案 0 :(得分:1)

如果在那些应创建约束的列上创建唯一索引,则列的组合是唯一的。见http://dev.mysql.com/doc/refman/5.1/en/create-index.html

这样的东西
CREATE UNIQUE INDEX <index_name> ON <table_name> (COMP_OWNER_ID, COMP_NAME);

您提供index_name和table_name。

答案 1 :(得分:0)

您可以在此处粘贴表格定义吗?我认为你应该用两列来定义primarykey,比如PRIMARYKEY(col1,col2)?

这是来自MySQL doc:

PRIMARY KEY可以是多列索引。但是,您无法使用列规范中的PRIMARY KEY键属性创建多列索引。这样做只会将单列标记为主列。您必须使用单独的PRIMARY KEY(index_col_name,...)子句。