sql - 如何在 PostgreSQL 中迭代使用 INSERT INTO
问题描述
我有 Table1 与我想要迭代的行,并将这些数据行中的值插入到另一个表中。
Table1Name -> ID Name Date Type
-------- -------------------------------
a 101 a 2021-07-01 original
b 139 b 2021-07-04 original
c 322 c 2021-07-08 original
d 431 d 2021-07-09 original
所以基本上伪是:
Loop over Table1:
INSERT INTO Table2 (id, name, date) VALUES (random(), Table1.name, NOW(), 'original')
只需遍历 Table1,每次都添加其中一个值。
解决方案
我想你只想要一个INSERT INTO ... SELECT
:
INSERT INTO Table2 (id, name, date)
SELECT RANDOM(), name, NOW()
FROM Table1;
大多数 SQL 操作本质上都是基于集合的,这意味着如果要将一个表中的所有记录插入到另一个表中,则该操作将被视为一件事情。
推荐阅读
- node.js - 无法在我的 Node.js 应用程序的 index.js 中的 edge.js 上设置全局
- javascript - 如何重复 JavaScript 表单验证,直到所有输入都正确,然后将输入插入数据库?
- flutter - Flutter:有没有办法在用户滚动另一个 pageView 时以编程方式滚动 pageView?
- tree - 给定迷宫中的两个节点,如何找到最近的节点?
- java - java中具有对象返回类型的抽象方法
- typescript - 如何使用 Typescript 扩展此接口
- swift - 无法将数据从地理编码器保存到全局变量
- ruby-on-rails - 使用设备 gem 保存 ActiveRecord::Base 上的字符串的未定义方法“delete_if”
- javascript - tinymce 自动列出项目
- javascript - 如何使用 JavaScript 函数从 Select Option 标记中获取值