无法在列'Type'中插入NULL

时间:2018-01-09 16:58:12

标签: python sql python-2.7 pyodbc

我正在尝试向Notes表添加一行包含两条信息。我正在用python执行以下INSERT语句。

cursor.execute("insert into Notes(Notes, NumericKey) values (?, ?)",Tracking, OrderNumber)

我得到的错误

Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
 IntegrityError: ('23000', "[23000] [Microsoft][SQL Server Native Client 11.0][SQL Server]Cannot insert the value NULL into column 'Type', table 'beltoutlet.dbo.Notes'; column does not allow nulls. INSERT fails. (515) (SQLExecDirectW); [01000] [Microsoft][SQL Server Native Client 11.0][SQL Server]The statement has been terminated. (3621)")

我看到很多人有类似的问题,但所有尝试过的解决方案都没有帮助。因为Tracking和OrderNumber都有真正的值而且我没有“Type”列,所以我的智慧结束了。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我同意Aaron Dietz的评论,即被引用的表(不一定是您要引用的表)具有Type列。为了纠正这种情况,我相信你有两种选择:

1)使用数据库和模式名称

指定确切的表
cursor.execute("insert into [databaseName].[SchemaName].[Notes](Notes, NumericKey) values (?, ?)",Tracking, OrderNumber)

2)(不推荐)通过将插入一个假值(如空字符串)

强制插入
cursor.execute("insert into Notes(Notes, NumericKey, [Type]) values (?, ?, ?)",Tracking, OrderNumber, '')

希望这有帮助。