假设我有一个简单的SQL表:
CREATE TABLE TestTable (
Model CHARACTER(10),
Brand CHARACTER(10)
)
现在,假设我已将以下内容插入到之前创建的表中:
INSERT INTO TestTable (Model, Brand) VALUES ('Thunderbird', 'Ford')
INSERT INTO TestTable (Model, Brand) VALUES ('Bronco', 'Ford')
如何构造一个INSERT
语句,该语句不会插入表中已包含的数据?应执行以下INSERT
语句,而不会导致重复的行:
INSERT INTO TestTable (Model, Brand) VALUES ('Fairlane', 'Ford')
INSERT INTO TestTable (Model, Brand) VALUES ('Mustang', 'Ford')
INSERT INTO TestTable (Model, Brand) VALUES ('Thunderbird', 'Ford')
最终,我想通过Python的pypyodbc
库编写此插入脚本。非常感谢任何帮助。
答案 0 :(得分:1)
如果您正在寻找执行插入的SQL查询,那么您可以使用以下内容:
INSERT INTO TestTable (Model, Brand)
SELECT t.model, t.Brand
FROM (VALUES ('Thunderbird', 'Ford')) AS t(model, brand)
WHERE NOT EXISTS (SELECT 1
FROM TestTable
WHERE t.model = model AND t.brand = brand)
如果存在重复项,则INSERT
未执行,因为SELECT
不返回任何行。