You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL:如何克隆user_id=1的行并将其user_id替换为3

解决方案

你可以通过INSERT ... SELECT语句快速实现需求——筛选出user_id=1的行,将新行的user_id替换为3,同时保留其他所有列的原始数据。

明确列名的稳妥写法

如果清楚表的所有列名,建议明确列出所有列,避免后续表结构变动时出错:

INSERT INTO 你的数据表名 (user_id, product_id, 列名1, 列名2, ...)
SELECT 3 AS user_id, product_id, 列名1, 列名2, ...
FROM 你的数据表名
WHERE user_id = 1;

多列场景的简化写法(分数据库)

如果表中列很多,部分数据库支持排除指定列的语法:

  • PostgreSQL:
INSERT INTO 你的数据表名
SELECT 3 AS user_id, (t).* EXCEPT (user_id)
FROM 你的数据表名 t
WHERE user_id = 1;
  • MySQL:由于MySQL不支持直接排除列,仍需手动列出所有非user_id的列。

执行上述语句后,表中就会新增user_id=3的对应行,与你给出的预期结果完全一致。

内容的提问来源于stack exchange,提问作者xaxa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:12:35