我需要复制一行来改变PK。 每个客户端安装中的表可以不同,因此我不能只列举列。 我设法做了以下事情:
INSERT INTO table SELECT * FROM table WHERE PK='value'
但显然它失败了,因为我正在尝试复制PK。
然后我尝试了:
INSERT INTO table SELECT 'newValue' AS PK, * FROM table WHERE PK='value'
它也失败了,因为列名不匹配。
我知道PK将永远是第一列,但我不确定它有多大用处。
所以......这可能吗?有什么想法吗?
答案 0 :(得分:7)
唯一的解决方案是通过查询列的列表并排除标识列来动态构建查询(这就是为什么我假设您希望跳过PK)。
答案 1 :(得分:2)
INSERT INTO table1 (col1_PK, col2 col3)
SELECT newValue, col2, col3
FROM table1
WHERE col1_PK = 'Value'