是否有可能以某種方式增加PK? 我需要使它在10000左右開始。有沒有一些sql語句可以直接在phpMyAdmin中執行?是否有可能以某種方式增加PK?
編輯: 我需要更清楚一點......
我需要在2190(約2000行)更新與PK的所有行。需要更新它們以在大約10000處開始而是...所以我確信它是某種編程問題...
是否有可能以某種方式增加PK? 我需要使它在10000左右開始。有沒有一些sql語句可以直接在phpMyAdmin中執行?是否有可能以某種方式增加PK?
編輯: 我需要更清楚一點......
我需要在2190(約2000行)更新與PK的所有行。需要更新它們以在大約10000處開始而是...所以我確信它是某種編程問題...
引用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說明這個概念。
如果您的表已經創建了自動增量。索引,使用
ALTER TABLE tbl AUTO_INCREMENT = 10000;
PK含義主鍵?目前如何生成?如果它是一個序列,只需重新定義序列以從所需值開始。 – DaveRlz
確實是PK的主鍵。而PK是(int)AI。我需要的是喜歡更新所有現有的。不只是以更高的數字開始新的... – ThomasK
這個問題不是編程相關的,所以它不屬於stackoverflow。但是我們有一個姊妹網站dba.stackexchange.com,它尤其適用於像這樣的數據庫管理問題。 – Philipp