小编sib*_*s.k的帖子

更新 MySQL 中的唯一键或主键

我正在构建一个供客户自己使用的数据库管理工具,并且在处理主键/唯一键更新的可能性时遇到了一些问题。因此,鉴于更新的数据是由 PHP 脚本逐行传递的,这就是我想出的(从“立即”到“一段时间后”):

  1. 删除/插入而不是更新(糟糕,我现在......):

    DELETE FROM table WHERE unique_key=x;
    DELETE FROM table WHERE unique_key=y;
    INSERT INTO table VALUES (unique_key=y, field=record1), (unique_key=x, field=record2);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更改我的主键/唯一键,然后用修改后的值替换它们:

    UPDATE table SET unique_key=x* WHERE unique_key=x;
    UPDATE table SET unique_key=y* WHERE unique_key=y;
    UPDATE table SET unique_key=y WHERE unique_key=x*;
    UPDATE table SET unique_key=x WHERE unique_key=y*;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 向我的所有表添加一个不可修改的 auto_increment 字段“id”,作为代理主键

现在,我正在为所有内容添加“id”字段。其他选择?

mysql primary-key sql-update

5
推荐指数
1
解决办法
3万
查看次数

标签 统计

mysql ×1

primary-key ×1

sql-update ×1