如何复制任意表格的一行并更改其中一列

5

我需要复制一行并更改主键。 每个客户端安装的表格可能不同,因此我无法列出所有列。 我已经成功实现了以下操作:

INSERT INTO table SELECT * FROM table WHERE PK='value'

但显然它失败了,因为我试图复制主键。

然后我尝试了:

INSERT INTO table SELECT 'newValue' AS PK, * FROM table WHERE PK='value'

由于列名不匹配,它也失败了。

我知道PK始终是第一列,但我不确定它是否有用。

那么...这可能吗?有什么想法吗?

2个回答

7
唯一的解决方案是通过查询其列列表并排除标识列(因此我假设您希望跳过PK)来动态构建查询。

由于没有更好的答案,我接受了这个看起来正确的答案。 - raven

2
INSERT INTO table1 (col1_PK, col2 col3) 
SELECT newValue, col2, col3
FROM table1 
WHERE col1_PK = 'Value'

2
正如楼主所说,他事先不知道列名。 - Ian Henry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接