【发布时间】:2016-04-22 15:32:34
【问题描述】:
谁能推荐一个更好的 SQL 语句或方法,以便我可以更快地INSERT INTO 链接表?随着表变大,我当前的方法会变慢,而我的链接表 INSERT 查询是问题所在。
我有两个通过链接表连接的表。架构如下:
CREATE TABLE table1
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 VARCHAR(40))
CREATE TABLE table2
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 VARCHAR(100),
field2 INT,
field3 VARCHAR(40))
CREATE TABLE linkTable
(id INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
field1 INT REFERENCES table1(id),
field2 INT REFERENCES table2(id))
因为我正在尝试批量插入,我目前正在检查我是否没有使用这个长查询在链接表中添加重复值:
INSERT INTO linktable(field1,field2)
SELECT table1Id, table2Id FROM
(SELECT table1.id table1Id, table2.id table2Id FROM table1,table2
WHERE table1.name=? AND table2.name=?) tmp
WHERE NOT EXISTS
(SELECT linktable.field1 FROM linktable tmp1 WHERE
tmp1.field1=tmp.table1id AND tmp1.field2=tmp.table2id)
【问题讨论】: