0

是否有可能以某种方式增加PK?我需要让它从大约 10000 开始。是否有一些我可以直接在 phpMyAdmin 中执行的 sql 语句?

编辑:我需要更清楚一点......

我需要更新 PK 超过 2190 的所有行(大约 2000 行)。需要更新它们以从大约 10000 开始......所以我相信这是某种编程问题......

4

2 回答 2

4

引用文档

所以问题是关于更新一组值。好吧,这是一种方法:

UPDATE some_table 
   SET some_pk = 10000 + some_pk 
 WHERE some_pk > 2190

不过,您必须遵循ALTER TABLE tbl AUTO_INCREMENT = 10000; 否则在此 UPDATE 之后插入的所有行仍会获得旧的 auto_increment。例如:

CREATE TABLE t (id INT AUTO_INCREMENT NOT NULL, s VARCHAR(5), PRIMARY KEY (id));
INSERT INTO t (s) VALUES ('a'), ('b'), ('c'), ('d'), ('e');

UPDATE t SET id = id + 10000 WHERE id > 3;
ALTER TABLE t AUTO_INCREMENT = 10000;

INSERT INTO t (s) VALUES ('f');

没有ALTER TABLE... 'f'的 id 将是 6;有了它 - 10006。

这是说明此概念的SQL Fiddle 。

于 2012-10-23T08:12:32.917 回答
1

如果您的表已经使用自动增量创建。索引,使用

ALTER TABLE tbl AUTO_INCREMENT = 10000;
于 2012-10-23T08:13:28.000 回答