PostgreSQL中能否从表1选取ID批量插入表2指定字段?
在PostgreSQL中实现固定值+查询结果的插入操作
完全可以实现你要的需求,但你写的SQL语法有问题——VALUES子句里不能直接嵌套SELECT查询。正确的做法是使用INSERT ... SELECT语法,直接把固定常量和查询结果组合起来插入目标表。
批量插入所有唯一ID
如果要把table_1里所有唯一的ID都插入table_2,每条记录搭配固定字符串值,用下面的SQL:
INSERT INTO table_2 (some_varchar_value, id_value_table_1) SELECT DISTINCT 'some_varchar_value', id FROM table_1;
DISTINCT会确保最终插入的id都是唯一的,固定字符串会自动对应每一条ID记录,实现批量插入。
只插入一条唯一ID
如果只需要从table_1里取任意一个唯一ID插入(比如第一条),可以加LIMIT 1:
INSERT INTO table_2 (some_varchar_value, id_value_table_1) SELECT 'some_varchar_value', id FROM table_1 WHERE id IS NOT NULL LIMIT 1;
这里的WHERE id IS NOT NULL是为了避免插入空值,若你确定table_1的id不会为空,可以去掉这个条件。
内容的提问来源于stack exchange,提问作者ChlnooL
相关产品推荐
相关产品推荐

