如何将值插入具有默认值的列? [PostgreSQL 9.1]

时间:2012-11-01 18:10:15

标签: postgresql insert default-value

我有这样的表:

CREATE TABLE employee (
    id INTEGER DEFAULT NEXTVAL('ids'::regclass) NOT NULL,
    name CHARACTER VARYING NOT NULL,
    employer INTEGER DEFAULT (-1)
);

我想将sth插入此表中(我希望保留employer作为默认值,-1):

INSERT INTO employee (name, id) VALUES('Doe', 2);

但我的PostgreSQL 9.1抱怨:

ERROR:  insert or update on table "employee" violates foreign key constraint "FK_employer"
DETAIL:  Key (employer)=(-1) is not present in table "employer".

我知道没有雇主的id = -1,但我仍然希望如此。我想将雇主设为-1为这个雇员。是否可以使用postgreSQL?

1 个答案:

答案 0 :(得分:2)

使默认值为null。好吗?

employer INTEGER DEFAULT null