【问题标题】:insert single value across multiple columns in sql在sql中的多个列中插入单个值
【发布时间】:2017-07-17 20:24:12
【问题描述】:

我有一个包含近 27 列(所有整数数据类型)的表,第一列是 ID(PK)。 我希望将所有值更新为某个值,例如 500。 有没有像这样输入所有 27 个列名的情况下要更新的查询。

UPDATE tbl_name SET a=500,b=500,c=500.....z=500 where ID = 1

否则我可以制作任何 PL/SQL 函数,它会在不提供列名和设置值的情况下自行获取下一列吗?

【问题讨论】:

  • AFAIK 这是唯一的选择,除非您想使用动态 SQL。如果是这样,那么您也许可以遍历所有列并将500 分配给每一列。
  • 但作为旁注,27 列听起来有点偏大。您可能想要重组您的数据库。
  • 动态SQL,你的意思是PL/SQL?
  • 我认为这在单个查询中是不可能的。您需要在 UPDATE 中指定列名

标签: mysql sql


【解决方案1】:

你不能这样做。您总是必须在更新时指定列名。如果它是一个过程你会重复你可以编写存储过程来做它。

【讨论】:

    【解决方案2】:

    在任何数据库中都不可能。您需要提及列名。检查以下线程中提到的最常见数据库的更新规范

    How to UPDATE all columns of a record without having to list every column

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-03
      相关资源
      最近更新 更多