MySQL:指复合键

时间:2014-07-19 23:54:59

标签: mysql

我有3列:姓名,年龄,地址 我希望名称和年龄是一个复合键来引用一个地址。

Create table usertable (
  name varchar(100) not null, 
  age int not null, 
  address varchar(100) not null,
  constraint addresskey PRIMARY KEY(name,age)
);

这有效:

select * from usertable where (name,age)=('somename',someage);  

但我想做的事情如下:

select * from usertable where addresskey=('somename',someage);  

我这样做时出错。

1 个答案:

答案 0 :(得分:0)

这样你想说你把主键放在了地址键上。 1)将名称和年龄作为主键并不是一个好主意,因为应该有一些重复。 2)您收到错误,因为查询错误,因为您没有名为addresskey的字段,并且在查询中您将varchar与2个字段进行比较。

因此,如果你想这样做,你可以添加一个字段地址密钥作为auto_increment字段(但要注意管理相同的地址,决定它是如何工作的),然后你可以选择使用地址键值。