CREATE TABLE new_table_name LIKE old_table_name со значениями AUTO_INCREMENT старого_таблицы - PullRequest
2 голосов
/ 02 марта 2010

Могу ли я создать новую таблицу со статусом автоинкрипции старой таблицы в клиенте mysql?

Я думаю, что ALTER TABLE new_table_name AUTO_INCREMENT=@my_autoincr_iment мне помогает, но эту конструкцию нужно использовать с постоянным значением. Я не хочу использовать сложный сценарий.

Ответы [ 2 ]

7 голосов
/ 02 марта 2010

mysql> create table new_table like old_table;

mysql> select @my_auto_increment:=auto_increment from information_schema.tables where table_name='old_table';

mysql> set @query = CONCAT("alter table new_table auto_increment = ", @my_auto_increment);

mysql> prepare stmt from @query;

mysql> execute stmt;

mysql> deallocate prepare stmt;

Спасибо моему брату!

1 голос
/ 02 марта 2010

Ваш CREATE TABLE может указать auto_increment для использования:

mysql> create table foo (i int primary key auto_increment, s varchar(12)) auto_increment = 10;
Query OK, 0 rows affected (0.19 sec)

mysql> insert into foo (s) values ("s");
Query OK, 1 row affected (0.09 sec)

mysql> select * from foo;
+----+------+
| i  | s    |
+----+------+
| 10 | s    |
+----+------+
1 row in set (0.03 sec)
...