2010-03-02 4 views

답변

4

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

귀하의 사용하도록 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) 
+0

나는 어떻게 MySQL의 구문을 게시 모르겠다. 귀하의 예가 적합하지 않습니다. – Minor

+0

mysql>'set @ my_auto_increment = 555; 질의 OK, 영향받은 행 0 개 (0.00 초) mysql>'select @my_auto_increment;' + ----------------- --- + | @my_auto_increment | + -------------------- + | 555 | + -------------------- + 1 행 세트 (0.00 초) mysql>'변경 테이블 zz AUTO_INCREMENT = @ my_auto_increment; ' ERROR 1064 (42000) : SQL 구문에 오류가 있습니다. 1 행에서 '@my_auto_increment'근처에서 사용할 올바른 구문을 보려면 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. – Minor