【问题标题】:How do you change the primary key, when rows have the same value?当行具有相同的值时,如何更改主键?
【发布时间】:2017-02-25 10:03:57
【问题描述】:

我在我的 Payable 表中添加了一个名为 id (int 5) 的新行,并希望将主键从 stock (int 5) 更改为 id。但是,当我创建 id 行时,sql 为每一行插入了一个 0 值。如何更改表,为每一行赋予一个从 10001 开始的自动递增值并将其设为主键?

【问题讨论】:

  • 当然是使用 AUTO_INCREMENT。这正是它的用途。
  • 感谢您没有阅读整个问题

标签: mysql phpmyadmin


【解决方案1】:

类似这样的东西(因为 MySQL 允许内联赋值):

SET @var = 10000;
UPDATE Payable
SET id = (@var := @var + 1);

SQL Fiddle

【讨论】:

  • MySQL 返回一个空结果集(即零行)。 (查询耗时 0.0005 秒。) 0 行受影响。 (查询耗时 0.0109 秒。)
  • 您是否同时运行了两个语句?今晚回家后我会测试自己并告诉你。
  • 已修复。我添加了一个演示链接。自己试试吧。
猜你喜欢
  • 2022-06-10
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 1970-01-01
  • 2018-12-22
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
相关资源
最近更新 更多