2016-10-31 3 views
0
1 
Traceback (most recent call last): 
    File "simulate_db.py", line 141, in <module> 
    cursor.execute("INSERT INTO accountsevents (accounts_id, events_id, date_created) VALUES ({0},{1}, TIMEZONE('utc', CURRENT_TIMESTAMP));".format(work, eventid)) 
psycopg2.IntegrityError: null value in column "id" violates not-null constraint 
DETAIL: Failing row contains (null, 2016-10-30 21:14:36.192339, 2016-10-30 21:14:36.192339, 1, 2, f, f, null). 

私はシミュレータを使って直接情報をデータベースにダンプしています。トレースバックの上に数字1が表示されます。これはworkという値のprintで、これは書式法の変数です。なんらかの理由で、SQL式にnullとして表示されます。私はここで何が起こっているのかを理解しようとしている私の脳を揺らしている。これは遠隔のVPS上にありますが、同じシミュレータファイルが私のためにローカルで正常に動作しています。Pythonフォーマットの値がnullとして返されています

アイデア?

答えて

1

私は確かに多くの情報が必要になりますが、エラーはnull値が列idで非NULL制約に違反することを言いますが、あなたはaccounts_idの列にworkの値を挿入しています。

id列の値を指定する必要があります。

+0

私はポストを作った後、それに気づいた。 idフィールドが自動インクリメントする必要があるため、奇妙です。私はそれを設定する必要はありません。 postgresの設定を少し掘り下げなければならないでしょう。 – DigitalDisaster

+1

このテーブルのIDに対して自動インクリメントが設定されていません。奇妙な。少なくとも私は正しい方向にいます。ありがとう。 – DigitalDisaster

関連する問題