我試圖運行在Postgres的這一說法:INSERT與缺省的標識不PostgreSQL的
insert into field (id, name) values (DEFAULT, 'Me')
,我得到這個錯誤:
ERROR: null value in column "id" violates not-null constraint
我最後不得不手動設置ID 。這個問題是當我的應用程序插入一條記錄時,我得到一個重複的鍵錯誤。我正在使用Play框架和ebean ORM構建一個Java應用程序。所以整個模式由ebean自動生成。在這種情況下,將記錄手動插入到數據庫中的最佳做法是什麼?
編輯:
這裏是我如何創建我的領域類
@Entity
public class Field {
@id
public Long id;
public String name;
}
編輯:
我檢查了field_seq序列,它看起來像這樣:
CREATE SEQUENCE public.field_seq INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 1;
編輯:
這是在pgAdmin III中生成的SQL:
CREATE TABLE field
(
id bigint NOT NULL,
created timestamp without time zone,
modified timestamp without time zone,
name character varying(255),
enabled boolean,
auto_set boolean,
section character varying(17),
input_type character varying(8),
user_id bigint,
CONSTRAINT pk_field PRIMARY KEY (id),
CONSTRAINT fk_field_user_3 FOREIGN KEY (user_id)
REFERENCES account (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT ck_field_input_type CHECK (input_type::text = ANY (ARRAY['TEXT'::character varying, 'TEXTAREA'::character varying]::text[])),
CONSTRAINT ck_field_section CHECK (section::text = ANY (ARRAY['MAIN_CONTACT_INFO'::character varying, 'PARTICIPANT_INFO'::character varying]::text[]))
);
CREATE INDEX ix_field_user_3
ON field
USING btree
(user_id);
檢查此鏈接:http://stackoverflow.com/questions/13372422/psqlexception-error-null-value-in-column-violates-not-null-constraint –
該鏈接是一個不同的問題 – Brian
我在pgAdmin III中運行了你的語句,並得到'ERROR:語法錯誤在或接近「/」LINE 1:/ d field' – Brian