2014-01-08 5 views
0

все,MySQL вставки автоинкремент мул ключ

Предположим, у меня есть следующая таблица MySQL testtable:

+----------+------------------------------+------+-----+---------+----------------+ 
| Field | Type       | Null | Key | Default | Extra   | 
+----------+------------------------------+------+-----+---------+----------------+ 
| testID | bigint(12) unsigned zerofill | NO | MUL | NULL | auto_increment | 
| testcol | varchar(10)     | YES |  | NULL |    | 
| testcol1 | varchar(10)     | YES |  | NULL |    | 
| testcol2 | varchar(10)     | YES |  | NULL |    | 
| testcol3 | varchar(10)     | YES |  | NULL |    | 
| testcol4 | varchar(10)     | YES |  | NULL |    | 
+----------+------------------------------+------+-----+---------+----------------+ 

Я затем вставить несколько строк, запустив, скажем, в 5 раз:

INSERT INTO testtable VALUES (null, 'testcol', 'testcol1', 'testcol2', 'testcol3', 'testcol4');

Затем удалите один ряд с testID = 000000000002:

DELETE FROM testtable WHERE testID = 000000000002;

Мой вопрос:

Будет TestID быть переназначены, как 000000000002 позже, запустив тот же оператор вставки?

Заранее спасибо.

ответ

1

Нет. Если вы не укажете ключ, двигатель назначит новое значение с автоинкрементами. Вы можете назначить ключ 0000000002 с явным вставкой

INSERT INTO testtable VALUES (0000000002, 'testcol', 'testcol1', 'testcol2', 'testcol3', 'testcol4'); 
+0

Благодарим вас за ответ. Я не хочу делать явные вставки. Я столкнулся с проблемой, когда «testID» переназначается и пытается понять, почему. – Lyon

Смежные вопросы