Mysql创建索引设置为无重复

时间:2013-04-05 02:57:28

标签: mysql constraints unique-constraint

我有一个表p_places,它有两列,它们都是引用父表的foriegn键:

mysql> create table p_places(
    -> user_id int not null,
    -> place_id int not null,
    -> FOREIGN KEY(user_id) references people(user_id) ON DELETE CASCADE,
    -> FOREIGN KEY(place_id) references places(place_id) ON DELETE CASCADE
    -> )engine=innodb;

我正在尝试为两个列创建一个索引,因此不能有重复的行(可能有重复的foriegn键但是......只是不是行)。

我试过了:

alter table p_places add index(user_id+place_id no duplicate);

alter table p_places add unique index(user_id+place_id);

alter table p_places add unique index both_id(user_id+place_id);

但没有成功。我想尝试使用alter table命令进行学习,而不是创建表。

1 个答案:

答案 0 :(得分:1)

你接近你想要的。

ALTER TABLE p_places ADD CONSTRAINT tb_unique UNIQUE(user_id, place_id)