代码之家  ›  专栏  ›  技术社区  ›  raven

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

  •  5
  • raven  · 技术社区  · 16 年前

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

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

    但显然失败了,因为我正试图复制pk。

    然后我试着:

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

    它也失败了,因为列名不匹配。

    我知道pk总是第一列,但我不确定它是否有用。

    所以…这有可能吗?知道吗?

    2 回复  |  直到 13 年前
        1
  •  7
  •   Thomas    16 年前

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

        2
  •  2
  •   user289831    16 年前
    INSERT INTO table1 (col1_PK, col2 col3) 
    SELECT newValue, col2, col3
    FROM table1 
    WHERE col1_PK = 'Value'