我有一个数据库表,其中一个字段(不是主键)上有一个唯一的索引.现在我想把这列下的值换成两行.这怎么可能呢?我知道的两个黑客是:

  1. 删除这两行并重新插入.
  2. 用其他值更新行

但我不想这么做,因为它们似乎不是解决这个问题的合适办法.

推荐答案

我认为你应该 Select 解决方案2.据我所知,任何SQL变体中都没有"swap"函数.

如果您需要定期这样做,我建议解决方案1,具体取决于软件的其他部分如何使用这些数据.如果不小心,可能会出现锁定问题.

但简而言之:除了您提供的解决方案之外,没有其他解决方案.

Sql相关问答推荐

limit 1是否提高了唯一值列查询的性能

在SQL中向每个子字节组添加字节行

Postgresql:从jsons数组到单个id索引的json

Select /过滤postgr中的树 struct

具有2个共享列的两个表的Amazon RSQL合并

按分隔符和总和分析字符串

如何在presto中映射id与名称

用VB.NET在Dapper中实现MS Access数据库顺序透视

SQL中相同表内的VLOOKUP等价

根据日期 Select ID 的上一条记录

从输出中删除 jsonb_build_object

如何解释 SQL Server 中的 Foxpro 语法?

SQL 查询是否返回列表中仅包含某些值而不包含其他值的行?

标量子查询中的窗口函数不起作用

在给定的日期范围内填写缺失的日期

强制 SQL 始终通过 R 从视图中返回至少一行

添加一列并根据其他列值进行填充

在 PostgreSQL 中使用重音敏感排序进行重音不敏感搜索

奇怪的甲骨文行为

如何根据 ID 和指标从 2 个表中找到不同的值?