사용자 도구

사이트 도구


database:mysql:auto_increment

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
database:mysql:auto_increment [2015/05/19 14:00]
kwon37xi
database:mysql:auto_increment [2015/11/13 14:25]
kwon37xi
줄 13: 줄 13:
    ), 0));    ), 0));
 </code> </code>
-  * MyISAM에서는 서버를 내렸다 올려도 최종 Auto increment 값이 변함이 없지만, InnoDB에서는 서버를 내렸다 올릴 때마다 ''SELECT MAX(ai_col) FROM t for UPDATE''의 값으로 다음 Auto Increment값이 정해진다. [[http://gywn.net/2013/02/mysql-innodb-auto-increment/|MySQL InnoDB Auto Increment]] 참조.+
  
 ===== auto_increment 문제점 ===== ===== auto_increment 문제점 =====
-  * [[http://gywn.net/2013/02/mysql-innodb-auto-increment/|InnoDB에서 Auto_Increment를 맹신하지 말자. | gywndi's database]]+  * MyISAM에서는 서버를 내렸다 올려도 최종 Auto increment 값이 변함이 없지만, InnoDB에서는 서버를 내렸다 올릴 때마다 ''SELECT MAX(ai_col) FROM t for UPDATE''의 값으로 다음 Auto Increment값이 정해진다. [[http://gywn.net/2013/02/mysql-innodb-auto-increment/|MySQL InnoDB Auto Increment]] 참조.
   * InnoDB에서 auto_increment 필드를 insert 후 다시 삭제한 뒤에 DB를 껐다켜면 auto_increment가 뒤로 돌아간다.   * InnoDB에서 auto_increment 필드를 insert 후 다시 삭제한 뒤에 DB를 껐다켜면 auto_increment가 뒤로 돌아간다.
   * 예를들어, ''1, 2, 3, 4, 5''까지 auto_increment 증가 후에 5 row를 삭제하고 DB를 껐다켜고 다시 insert를 하면 새로운 row의 auto_increment값이 ''5''가 된다. 원칙적으로는 ''6''이 되어야 한다.   * 예를들어, ''1, 2, 3, 4, 5''까지 auto_increment 증가 후에 5 row를 삭제하고 DB를 껐다켜고 다시 insert를 하면 새로운 row의 auto_increment값이 ''5''가 된다. 원칙적으로는 ''6''이 되어야 한다.
 +
 +===== 다음 AUTO_INCREMENT 값 미리보기 =====
 +  * 실제 값의 증가 없이 다음 AUTO_INCREMENT 값을 확인해보기. [[http://stackoverflow.com/questions/15821532/get-current-auto-increment-value-for-any-table|mysql - Get current AUTO_INCREMENT value for any table]]
 +
 +<code sql>
 +SELECT `AUTO_INCREMENT`
 +FROM  INFORMATION_SCHEMA.TABLES
 +WHERE TABLE_SCHEMA = 'DatabaseName'
 +AND   TABLE_NAME   = 'TableName';
 +</code>
  
database/mysql/auto_increment.txt · 마지막으로 수정됨: 2015/11/13 17:38 저자 kwon37xi