2016-08-06 5 views
5

私はpostgresqlとyii2フレームワークを使用します。 さて、私は非常に興味深いのエラーメッセージました:Postgresエラー:カラム "id"のヌル値 - 挿入操作中

SQLSTATE[23502]: Not null violation: 7 ERROR: null value in column "id" violates not-null constraint 
DETAIL: Failing row contains (null, 1, null, null, null, null, 1, Demo, , , , 1998-01-01, , , , 345345435453453, , , , , 1, , , f, f, f, f, 10, f, 1, f, f, f, null, null, null, 1470477479, 1470477479, null). 

をしかし、私は私のInsertコマンドをチェックし、「ID」欄には、そこではありません!

INSERT INTO "advertiser" ("languages", "type", "name", "display_name", "title", "about", "birthday", "gender", "country_id", "county_id", "city_id", "city_part", "street", "house_number", "phone", "public_email", "public_url", "motto", "message", "im_facebook", "im_skype", "has_viber", "has_whatsapp", "has_sms_response", "visible_birthday", "is_checked", "status", "version", "user_id", "created_at", "updated_at") VALUES (NULL, 1, 'Demo', '', '', '', '1998-01-01', 1, NULL, NULL, NULL, '', '', '', '345345435453453', '', '', '', '', '', '', FALSE, FALSE, FALSE, FALSE, FALSE, 10, NULL, 1, 1470477479, 1470477479) RETURNING "id" 

私は本当にこのエラーメッセージを理解できません。 PostgresやYiiがnull ID値を挿入しようとしたり、何を挿入しようとしているのかわかりません。ところで

ここでは、構造

            Table "public.advertiser" 
     Column   |   Type   |   Modifiers   | Storage | Stats target | Description 
-----------------------+------------------------+---------------------------------+----------+--------------+------------- 
id     | integer    | not null      | plain |    | 
user_id    | integer    |         | plain |    | 
country_id   | integer    |         | plain |    | 
county_id    | integer    |         | plain |    | 
city_id    | integer    |         | plain |    | 
district_id   | integer    |         | plain |    | 
type     | smallint    |         | plain |    | 
name     | character varying(255) | not null      | extended |    | 
display_name   | character varying(255) | default NULL::character varying | extended |    | 
title     | character varying(255) | default NULL::character varying | extended |    | 
about     | text     |         | extended |    | 
birthday    | date     | not null      | plain |    | 
city_part    | character varying(255) | default NULL::character varying | extended |    | 
street    | character varying(255) | default NULL::character varying | extended |    | 
house_number   | character varying(20) | default NULL::character varying | extended |    | 
phone     | character varying(15) | not null      | extended |    | 
public_email   | character varying(255) | default NULL::character varying | extended |    | 
public_url   | character varying(255) | default NULL::character varying | extended |    | 
motto     | character varying(255) | default NULL::character varying | extended |    | 
message    | text     |         | extended |    | 
gender    | smallint    | not null default 1    | plain |    | 
im_facebook   | character varying(255) | default NULL::character varying | extended |    | 
im_skype    | character varying(255) | default NULL::character varying | extended |    | 
has_viber    | boolean    | not null default false   | plain |    | 
has_whatsapp   | boolean    | not null default false   | plain |    | 
has_sms_response  | boolean    | not null default false   | plain |    | 
visible_birthday  | boolean    | not null default false   | plain |    | 
status    | smallint    | not null default 10    | plain |    | 
is_checked   | boolean    | not null default false   | plain |    | 
geo_latitude   | double precision  |         | plain |    | 
geo_longitude   | double precision  |         | plain |    | 
languages    | integer[]    |         | extended |    | 
created_at   | integer    |         | plain |    | 
updated_at   | integer    |         | plain |    | 
version    | bigint     | default 0      | plain |    | 
Indexes: 
    "advertiser_pkey" PRIMARY KEY, btree (id) 

あなたのアドバイスは何を見つけることができますか?どこで問題を探してみるべきですか?

答えて

6

idの値を挿入していません。明示的に設定しないので暗黙的にnullの値が与えられます。これはもちろん、主キー列の有効な値ではありません。この完全な状況を回避するには、この列を平方の古いintegerの代わりにserialと定義し、すべての重労働をデータベースに残します。

関連する問題