Python pyodbc重复键被忽略

2024-03-28 18:48:57 发布

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

我正在使用pyodbc并请求模块使用webapi提取数据并将其推送到我的数据库-SQL server。 我发出一个请求,并在响应上做一个循环,将其插入到我的数据库中。 在我的表中,costc列是唯一的值 一切正常,问题是有时我可能会再次尝试插入costc,然后出现以下错误: pyodbc.IntegrityError文件:(“23000”,“[23000][Microsoft][ODBC SQL Server Driver][SQL Server]重复密钥被忽略。(3604)(SQLExecDirectW)')

这是我的密码:

conn.cursor()
cursor.execute('''INSERT INTO Containers(costc,container,descritpion)

VALUES(?,?,?)''',(costc,container,description))

conn.commit()

我尝试运行以下代码以避免重复:

conn.cursor()

cursor.execute('''IF NOT EXISTS(SELECT * FROM Containers WHERE costc = VALUES(?))
BEGIN
INSERT INTO Containers(costc,container,descritpion) 
VALUES(?,?,?)
END''',(costc,costc,container,description))

但我有以下错误: pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'VALUES'

你知道如何避免重复吗?你知道吗


Tags: 数据库executesqlservercontainerdriver错误conn