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

问题描述:

几周前我询问this question。从现在到现在,我已经转移到了MySQL,并且该解决方案可悲地没有转移过来。列中的唯一值,但仅对每个关联的外键唯一:MySQL

而不是使comp_owner_id, comp_name对唯一,这些列只是被标记为需要是唯一的。什么是正确的方式去做这件事?

我在InnoDB表中使用MySQL 5.1。

+0

请在此问题中放入您正在尝试在MySQL中使用的代码。因此,我们不必通过链接旅行,并猜测您正在使用的代码组合(问题,答案)或您做出的更改。 –

+0

我的歉意。我将来在提问时会记住这一点。 –

如果您在那些应创建列组合唯一的约束的列上创建唯一索引。见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

你能在这里粘贴你的表格定义吗?我认为你应该定义像PRIMARYKEY(col1,col2)这样的两列的primarykey?

这是从MySQL DOC:

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