使mySQL列对每个外键都是唯一的

时间:2018-05-14 11:49:44

标签: mysql mysqli

我们说我的数据库中有以下列:

Get-ADGroupMember

有没有办法在每次插入之前不查询数据库,那一个外键不能包含两个同名的行?

3 个答案:

答案 0 :(得分:1)

当然,您希望为外键列添加(唯一)索引。 要添加的SQL命令是

ALTER TABLE `mytable`
ADD UNIQUE INDEX `mytable_idx__1` (`foreign_id`);

答案 1 :(得分:0)

如果我理解正确,您可能想要使用UNIQUE约束:

CREATE TABLE (
    id          INT PRIMARY KEY
  , name        VARCHAR(50) --or whatever you need
  , foreign_id  INT UNIQUE
    FOREIGN KEY (foreign_id) REFERENCES...
);

答案 2 :(得分:0)

我理解使用FOREIGN KEY(foreign_id)REFERENCES ---将解决它。并确保始终为其他表格unique key作为foreign key

CREATE TABLE profile
( 
  id int NOT NULL PRIMARY KEY,
  name varchar(50),
  FOREIGN KEY (name)
     REFERENCES member (name) 
     ON DELETE CASCADE
     ON UPDATE CASCADE
) ENGINE=InnoDB ;