我试图创建一个插入脚本来插入多行,并使用“exists”条件,但它返回一个错误,我不知道为什么,
我有一个这样的查询:
INSERT INTO films (id, code, title, did, date_prod, kind) VALUES
(1, 'B6717', 'Tampopo', 110, '1985-02-10', 'Comedy'),
(2, 'HG120', 'The Dinner Game', 140, DEFAULT, 'Comedy'),
(3, 'HG770', 'The Tampopo', 140, DEFAULT, 'Comedy')
WHERE NOT EXISTS (SELECT 1 FROM films WHERE code in ('B6717', 'HG120', 'HG770')
AND NOT EXISTS (SELECT 1 FROM films WHERE id in (1,2,3));
我想知道为什么这个查询是不可能的,以及使用多个“存在”条件插入多行的正确方法
2条答案
按热度按时间zte4gxcn1#
您可以通过在
code
上放置一个唯一约束来实现此操作:然后你可以使用
INSERT ... ON CONFLICT
:jdzmm42g2#
可以使用upsert操作插入多行,而不使用EXISTS条件
下面的查询可能有助于在表中插入多行。查询如下:
下面的查询将尝试用指定的值向films表中插入一行,如果存在冲突,它将在冲突的行上执行更新。