按如下方式创建表,其中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);
答案 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
)
如果你这样做,你将无法插入重复的值。