禁止在选项卡中插入重复行

2024-09-30 10:35:37 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个简单的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库编写这个插入脚本。非常感谢您的帮助。你知道吗


Tags: 数据sqlmodelcreatetable语句insertvalues
1条回答
网友
1楼 · 发布于 2024-09-30 10:35:37

如果要查找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不返回任何行。你知道吗

Demo here

相关问题 更多 >

    热门问题