是否有可能以某种方式增加PK?

时间:2012-10-23 08:10:10

标签: mysql sql

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

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

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

2 个答案:

答案 0 :(得分:3)

引用the doc

所以问题是更新一些值。嗯,这是一种方法:

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说明了这个概念。

答案 1 :(得分:1)

如果您的表已经使用auto-incr创建。索引,使用

ALTER TABLE tbl AUTO_INCREMENT = 10000;