【发布时间】:2011-01-31 00:47:24
【问题描述】:
我有两个表 --> 变量 (id, name) 和 Variable_Entries (id, var_id, value)。
我希望每个变量都有一组唯一的条目。如果我使值条目唯一,那么不同的变量将无法具有相同的值,这是不正确的。
有没有办法让相同的 var_id 的值列唯一?
【问题讨论】:
我有两个表 --> 变量 (id, name) 和 Variable_Entries (id, var_id, value)。
我希望每个变量都有一组唯一的条目。如果我使值条目唯一,那么不同的变量将无法具有相同的值,这是不正确的。
有没有办法让相同的 var_id 的值列唯一?
【问题讨论】:
是的,您可以创建一个复合unique key:
ALTER TABLE variable_entries ADD UNIQUE (var_id, value);
【讨论】:
是的:
alter table Variable_Entries add unique (var_id, value);
现在你有一个跨越 var_id 和 value 的唯一约束。换句话说,var_id 和 value 的出现都不能出现多次。
【讨论】:
create table tbl_table ( id integer not null auto_increment, fname varchar(255), lname varchar(255), CONSTRAINT tbl_table PRIMARY KEY (id), unique (fname,lname) )
为组合字段 var_id/value 添加一个 Variable_Entries 的唯一键。
此外,您应该始终对表名使用单数词(用户而不是用户)。切勿在表名中使用大写字符,因为这会导致您在不同的操作系统上做噩梦。
【讨论】: