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