2012-10-23 2 views
0

Можно ли как-то увеличить ПК? Мне нужно запустить его примерно в 10000. Есть ли какой-нибудь sql-оператор, который я мог бы выполнить непосредственно в phpMyAdmin?Можно ли как-то увеличить ПК?

EDIT: мне нужно быть немного более ясным ...

мне нужно обновить все строки с ПК через 2190 (около 2000 строк). Нужно обновить их, чтобы начать примерно с 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' «s идентификатор будет 6; с его помощью - 10006.

SQL Fiddle, иллюстрации этой концепции.

1

Если ваш стол уже создан с помощью auto-incr. индекс, использование

ALTER TABLE tbl AUTO_INCREMENT = 10000; 
Смежные вопросы