sql - INSERT的多值宏是什么?
问题描述
INSERT INTO reports (id, date, message)
VALUES ($1, $2, $3)
RETURNING id
是否可以($1, $2, $3)
用更简单的东西代替,比如?
or *
?这有点令人沮丧 - 输入所有值。
解决方案
你可以使用INSERT INTO SELECT FROM VALUES()
语法:
INSERT INTO reports (id, date, message)
SELECT col1, col2, 'const_value'
FROM (VALUES (...,...),
(...,...)) s(col1, col2, ...,coln)
RETURNING id;
示例演示:
CREATE TABLE reports(id SERIAL, daten DATE, message TEXT);
INSERT INTO reports ( daten, message)
SELECT col2, 'const_value'
FROM (VALUES ('2019-01-01'::date),
('2019-01-02'::date)) s(col2)
RETURNING id;
SELECT * FROM reports;
推荐阅读
- react-native - 是否有禁用标签栏按钮的选项
- c++ - 在不破坏客户端的情况下修复过载
- python-3.x - 无法使用 Bokeh 和 Python 绘制数据点 - 显示空布局
- html - 屏幕阅读器无法阅读整页
- javascript - 如何控制 v-card 的垂直滚动条?
- selenium - chrome 在 dom 中找不到硒的任何元素
- amazon-web-services - 使用 JupyterNotebook 进行 AWS Congito 身份验证
- pandas - 使用 pandas 运行分析报告时出错,给我一个错误“TypeError: describe_boolean_1d() got an unexpected keyword argument 'title'”
- python - 在父级之外绘制 QGraphicsWidget
- r - Mac上的R Gui应用程序在调用历史记录时添加空行