2012-10-23 71 views
0

是否有可能以某種方式增加PK? 我需要使它在10000左右開始。有沒有一些sql語句可以直接在phpMyAdmin中執行?是否有可能以某種方式增加PK?

編輯: 我需要更清楚一點......

我需要在2190(約2000行)更新與PK的所有行。需要更新它們以在大約10000處開始而是...所以我確信它是某種編程問題...

+0

PK含義主鍵?目前如何生成?如果它是一個序列,只需重新定義序列以從所需值開始。 – DaveRlz

+0

確實是PK的主鍵。而PK是(int)AI。我需要的是喜歡更新所有現有的。不只是以更高的數字開始新的... – ThomasK

+0

這個問題不是編程相關的,所以它不屬於stackoverflow。但是我們有一個姊妹網站dba.stackexchange.com,它尤其適用於像這樣的數據庫管理問題。 – Philipp

回答

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

如果您的表已經創建了自動增量。索引,使用

ALTER TABLE tbl AUTO_INCREMENT = 10000; 
相關問題