0

私はPostGres 9.5を使用しています。私はPostGresにNULL値が挿入されたときにIDを自動生成するにはどうすればよいですか?

myproject=> \d my_object_times 
           Table "public.my_object_times" 
     Column  |   Type    |    Modifiers    
-------------------+-----------------------------+------------------------------------- 
… 
time_in_ms  | bigint      | 
created_at  | timestamp without time zone | not null 
updated_at  | timestamp without time zone | not null 
name    | character varying   | 
age    | integer      | 
city    | character varying   | 
state_id   | integer      | 
country_id  | integer      | 
overall_rank  | integer      | 
age_group_rank | integer      | 
gender_rank  | integer      | 
races_id   | integer      | 
event_id   | character varying   | 
id    | character varying   | not null default uuid_generate_v4() 

...自動生成のIDを期待して、私のテーブルで次のように設定している。しかし、私は試してみて、一括挿入ステートメントを実行すると、の内容は

INSERT INTO "my_object_times" ("first_name","last_name","time_in_ms","created_at","updated_at","name","participant","age","city","state_id","country_id","overall_rank","age_group_rank","gender_rank","races_id","event_id","id","division_low_age","division_high_age") VALUES (NULL,NULL,1403000,'2016-10-12 15:36:42.766936','2016-10-12 15:36:42.767104','Terry Williamson',NULL,NULL,NULL,NULL,NULL,4,1,NULL,NULL,'0bf8c3bc-3577-4cab-bdd4-61e64655eaed',NULL,3,3),(NULL,NULL,1431000,'2016-10-12 15:36:42.766936','2016-10-12 15:36:42.767104','Casey Reinl',NULL,NULL,NULL,NULL,NULL,5,1,NULL,NULL,'0bf8c3bc-3577-4cab-bdd4-61e64655eaed',NULL,2,2),(NULL,NULL,1473000,'2016-10-12 15:36:42.766936 

ようになります私は、SQLは、私はそう

のように起動していますRailsの4.2.7のActiveRecord-輸入宝石、によって自動生成されるエラーに

Error during processing: PG::NotNullViolation: ERROR: null value in column "id" violates not-null constraint 
DETAIL: Failing row contains (null, null, 1403000, 2016-10-12 15:36:42.766936, 2016-10-12 15:36:42.767104, Terry Williamson, null, null, null, null, null, 4, 1, null, null, 0bf8c3bc-3577-4cab-bdd4-61e64655eaed, null, 3, 3). 

を取得します

IDが入力されていない場合、私のIDは自動的に生成されます。

答えて

0

参考

columns_without_id = YourModel.column_names.reject { |column| column == 'id' } 
import(columns_without_id, records) 

、これを試してみてください:Github issue

関連する問題