现在数据库中有一张表table_a,id是一个auto_increment字段。现在想把该数据库迁移到别的机器上。所做操作:
1. 用mysqldump命令备份出,然后source命令导入到另外的机器上。
2. 原数据库中,用truncate命令删掉table_a中记录,通过ejb程序插入记录时id编号从1开始。(通过ejb程序插入记录)
3. 新数据库中,用truncate命令删掉table_a中记录,手工用insert语句插入记录,id编号是从1开始;但是通过同一个ejb程序插入记录时,id编号是从一个很大的数开始的。哪位大侠知道是什么原因?是数据库的原因还是ejb的原因?怎样解决呢?

解决方案 »

  1.   

    应该是ejb的问题,你看看ejb的主键生成策略是什么样的。或者从新发布ejb应该可以。
      

  2.   

    truncate命令是会把自增的字段还原为从1开始的,EJB没用过,不清楚,不过你如果通过mysql的自增功能来形成这个Id的话,应该与程序无关才是。或者你试试把table_a清空,然后取消自增,保存,再加回自增,这也是自增段还原为1的方法。