MySQL:不为column1和column2插入重复项

时间:2014-04-07 14:49:44

标签: mysql insert where jointable

按如下方式创建表,其中column1和column2都是外键值。

ID | column1的|列2 |

0 | 1 | 1

1 | 1 | 2

2 | 1 | 2

3 | 2 | 2

插入时,我不想像行号#2那样重复。

我以为我可以这样插入:

INSERT INTO tablename (column1, column2) VALUES (@last_id_in_col1key,@last_id_in_column2key) <*>

然后我想要这样的事情:

<*> where column1 and column2 are not equal to @last_id_in_col1key and @last_id_in_column2key

有没有办法将它添加到我的表中,还是必须是一个单独的命令?

alter table tablename add unique index(column1, column2);

1 个答案:

答案 0 :(得分:2)

似乎你正在创建一个所谓的连接表,其目的是将table1中的项与table2中的项关联多少。

这通常使用两列表来完成。该表中的两列都是主键的一部分。你这样做是这样的:

CREATE TABLE JoinTable ( 
   first_id  INT NOT NULL , 
   second_id INT NOT NULL , 

   PRIMARY KEY (first_id, second_id),

   FOREIGN KEY (first_id) 
    REFERENCES first(first_id)
    ON DELETE CASCADE,

   FOREIGN KEY (second_id) 
    REFERENCES second(second_id)
    ON DELETE CASCADE
 )

如果你这样做,你将无法插入重复的值。