我有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);
我这样做时出错。
答案 0 :(得分:0)
这样你想说你把主键放在了地址键上。 1)将名称和年龄作为主键并不是一个好主意,因为应该有一些重复。 2)您收到错误,因为查询错误,因为您没有名为addresskey的字段,并且在查询中您将varchar与2个字段进行比较。
因此,如果你想这样做,你可以添加一个字段地址密钥作为auto_increment字段(但要注意管理相同的地址,决定它是如何工作的),然后你可以选择使用地址键值。