NodeJS 如何设置postgresql DATE数据类型的默认值- CURRENT_DATE不起作用

gblwokeq  于 2023-01-30  发布在  Node.js
关注(0)|答案(1)|浏览(154)

我在node.js中使用pg包,并创建了我的表模式:

CREATE TABLE clients_steps (
  id SERIAL PRIMARY KEY,
  client_id INTEGER NOT NULL
    REFERENCES clients ON DELETE CASCADE,
  step_id INTEGER NOT NULL
    REFERENCES steps ON DELETE CASCADE,
  update_date DATE NOT NULL DEFAULT CURRENT_DATE 
);

现在我正在尝试为数据库播种。但它一直向我抛出错误。我的种子文件:

### this works fine ###
INSERT INTO clients_steps (client_id, step_id, update_date)
VALUES (1, 2, '2023-02-02');

### this is not working ###
INSERT INTO clients_steps (client_id, step_id, update_date)
VALUES (1, 1);

错误是:
错误:INSERT的目标列多于表达式
第1行:INSERT INTO客户端步骤(客户端标识,步骤标识,更新日期)
我认为原因是它不能在列中插入默认值。
那么我应该如何设置DATE数据类型的默认值呢?我不需要时间戳,只需要日期。
太感谢你了!

neskvpey

neskvpey1#

要将第二次插入转换为有效的SQL,您有两种选择:
1.从列表中省略要使用默认值的列:

INSERT INTO clients_steps (client_id, step_id)
VALUES (1, 1);

1.使用特殊值DEFAULT

INSERT INTO clients_steps (client_id, step_id, update_date)
VALUES (1, 1, DEFAULT);

相关问题