0
python 2.7
pyramid 1.3a4
sqlalchemy 7.3
sqlite3.7.9

从 sqlite 提示 > 我可以做到:

insert into risk(travel_dt) values ('')
also
insert into risk(travel_dt) values(Null)

两者都会导致新行的值为空,risk.travel_dt但是当我travel_dt从金字塔中尝试这些值时,Sqlalchemy 给了我一个错误。

在第一种情况下,我得到sqlalchemy.exc.StatementError

SQLite Date 类型只接受 python 日期对象作为输入

在第二种情况下,我得到Null is not defined. 当我使用“Null”时,我得到第一个案例错误

对于另一个关于 null 的问题,我深表歉意:我已经阅读了很多材料,但一定错过了一些简单的东西。感谢您的帮助克莱门斯赫歇尔

4

1 回答 1

1

虽然您没有提供对您正在使用的表定义或任何示例代码的任何见解,但我猜这个问题是由于混淆NULL(数据库保留字)和None(Python 保留字)造成的。

错误消息告诉您,您需要使用有效的 pythondate对象调用 SQLA 方法,而不是诸如“Null”或“”之类的字符串。

假设您有一个名为的表,risk其中包含一个名为 的列travel_dt,您应该能够在该表中创建一个类似于以下内容的行:

risk.insert().values(travel_dt=None)

请注意,这只是一个片段,您需要在SA Docs SQL 表达式语言教程engine中定义的上下文中执行这样的调用。

于 2012-08-13T23:22:43.757 回答