0
时间戳字段
我在MySQL以下DB模式,这是我在PostgreSQL中使用ORM复制:插入空值在postgreqSQL
CREATE TABLE IF NOT EXISTS users (
id BIGINT NOT NULL DEFAULT NEXTVAL ('users_seq'),
email VARCHAR(255) NOT NULL DEFAULT '',
password VARCHAR(255) NOT NULL DEFAULT '',
last_name VARCHAR(255) NOT NULL DEFAULT '',
first_name VARCHAR(255) NOT NULL DEFAULT '',
created TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
而且我想执行以下查询
INSERT INTO users (id, email, password,first_name, last_name, created, updated)
VALUES (1, '[email protected]', 'pass', 'user', 'user', NULL, NULL);
这将导致一个错误
ERROR: null value in column "created" violates not-null constraint
预期的行为是有当前时间戳的情况下,该值为NULL,它在MySQL中工作
我正在使用PostgreSQL 10.我是否缺少任何配置,或者在Postgres中不支持?
请从标签中删除postgres。如果你想要默认值,跳过列表中的列 - 如果你明确地指定了NULL,那么你会试图插入null到null中,而不是DEFAULT –
允许null为'created'和'updated'字段。不可空字段。如果你的插入查询没有这个字段,只有默认会插入 – Bharat
@VaoTsun为什么要删除postgres标签?这由mysql支持。该查询是从ORM库生成的。 – Anuruddha