Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何复制任何表中更改一列的行_Sql_Copy_Row - Fatal编程技术网

Sql 如何复制任何表中更改一列的行

Sql 如何复制任何表中更改一列的行,sql,copy,row,Sql,Copy,Row,我需要复制一行更改主键。 每个客户端安装中的表可能不同,因此我不能只枚举列。 我已经做到了以下几点: INSERT INTO table SELECT * FROM table WHERE PK='value' 但很明显,它失败了,因为我试图复制PK 然后我试着: INSERT INTO table SELECT 'newValue' AS PK, * FROM table WHERE PK='value' 它也失败了,因为列名不匹配 我知道PK总是第一列,但我不确定它有多大用处 所以。。。

我需要复制一行更改主键。 每个客户端安装中的表可能不同,因此我不能只枚举列。 我已经做到了以下几点:

INSERT INTO table SELECT * FROM table WHERE PK='value'
但很明显,它失败了,因为我试图复制PK

然后我试着:

INSERT INTO table SELECT 'newValue' AS PK, * FROM table WHERE PK='value'
它也失败了,因为列名不匹配

我知道PK总是第一列,但我不确定它有多大用处


所以。。。这可能吗?有什么想法吗?

唯一的解决方案是通过查询列列表并排除标识列(这就是为什么我假设您希望跳过PK)来动态构建查询。

正如OP所说,他事先不知道列名。因为没有更好的答案,我接受这一点,这似乎是正确的。
INSERT INTO table1 (col1_PK, col2 col3) 
SELECT newValue, col2, col3
FROM table1 
WHERE col1_PK = 'Value'