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)

どちらも null 値を持つ新しい行になりますrisk.travel_dtが、ピラミッドからこれらの値を試すとtravel_dt、Sqlalchemy でエラーが発生します。

最初のケースでは、次のようになりますsqlalchemy.exc.StatementError

SQLite の日付型は、Python の日付オブジェクトのみを入力として受け入れます

2 番目のケースでは、 が得られNull is not definedます。「Null」を使用すると、最初のケースエラーが発生します

ヌルに関する別の質問をお詫び申し上げます。多くの資料を読みましたが、簡単なことを見逃していたに違いありません。助けてくれてありがとうクレメンス・ハーシェル

4

1 に答える 1

1

使用しているテーブル定義やコード例についての洞察は提供していませんが、NULL(データベースの予約語) とNone(Python の予約語) の混乱が原因であると推測しています。

dateエラー メッセージは、"Null" や '' などの文字列ではなく、有効な Python オブジェクトを使用して SQLA メソッドを呼び出す必要があることを示しています。

riskと呼ばれる列を含むと呼ばれるテーブルがあると仮定するとtravel_dt、そのテーブルに次のような行を作成できるはずです。

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

これは単なるスニペットであることに注意してください。このような呼び出しは、 SA Docs SQL Expression Language Tutorialengineで定義されているようなコンテキスト内で実行する必要があります。

于 2012-08-13T23:22:43.757 に答える