如何将带有自增主键的数据导入到另一个数据库

71次阅读

从seo来说,主键id值并不想改变。现在从access导入到mysql,保持主键不变,且为自增。那么这样插入数据后id会被重置从1开始吧。

airyland

让mysql和access的结构保持一样就行了。该怎么导入怎么导入,然后看最大的id是什么,直接alter掉。
导入完成以后,看最大的主键是什么:

select max(PRIMARY_ID) from TB_NAME;

比如是1000。
然后直接alter掉:

alter table TB_NAME AUTO_INCREMENT = 1001;

这样就OK了,下次再insert,就是从1001开始了。

gaosboy

你可以先不设置自增导完了以后再alter table嘛,不过话说回来,使用mysql直接insert一个id在一个auto_increment的字段里是可以的啊,至少我这里都这样,不知道你那神马现象

Chris_Yue

可以insert一条记录之前先修改auto_increment的值为该记录的id值, 然后insert.
但得保证数据按id正序排序

insert into `TABLENAME` (`FIELDNAME`) values ('aaa');
alter table `TABLENAME` auto_increment=5;
insert into `TABLENAME` (`FIELDNAME`) values ('bbb');
select * from `TABLENAME`;
-----
1 aaa
5 bbb

————————-
楼上说的对啊, 按正序排列的数据, 直接插入不连续的id值是可以的…

Seven

正文完