我正在尝试向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”列,所以我的智慧结束了。任何帮助将不胜感激。
答案 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, '')
希望这有帮助。