【问题标题】:Mysql Create Index Set As No DuplicatesMysql创建索引设置为无重复
【发布时间】:2013-03-27 08:24:12
【问题描述】:

我有一个表 p_places 有两列都是引用父表的外键:

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;

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

我试过了:

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 命令来完成此操作,以用于学习目的,而不是创建表。

【问题讨论】:

    标签: mysql constraints unique-constraint


    【解决方案1】:

    你已经接近你想要的了。

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

    【讨论】:

    • 命名约束的目的是我的第二个问题...谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 2012-04-07
    • 2020-05-15
    • 2016-02-04
    • 2012-09-07
    相关资源
    最近更新 更多