2011-09-13 4 views
0

레코드가 있지만이 레코드가 삭제 된 테이블이 있습니다. 데이터베이스 테이블에서 자동으로 증가하는 기본 키가 있습니다.테이블에서 모든 행이 삭제 된 경우 자동으로 증가하는 기본 키의 다음 값을 확인하는 방법은 무엇입니까?

테이블에 새 행을 삽입하기 전에이 기본 키의 다음 값을 알 수있는 방법이 있습니까? 가능한 경우 행을 삽입 한 후 생성 된 기본 키의 값을 즉시 가져 오는 방법이 있습니까?

답변

0

당신은 행을 삽입 한 다음 last_insert_id 볼 수 있었다 : 당신에게 INSERT에 사용 된 auto_increment 값을 줄 것

insert into ....; 
select last_insert_id(); 

합니다.

show table status like 'your_table_name' 출력을 살펴볼 수도 있습니다. 사용되는 다음 값을 알려주는 Auto_increment 값이 있습니다. 그냥 MySQL의 프롬프트에 앉아있는 경우

+0

나는 문제가 PHP에서 LAST_INSERT_ID() 메서드를 호출 있습니다. 내가 시도한 $ image_id = select LAST_INSERT_ID(); 하지만 아무것도 반환하지 않습니다, 그럼 나는 $ image_id = LAST_INSERT_ID(); 그리고 아무것도 반환하지 않습니다! 그래서 PHP로 호출하는 방법? –

+0

@Andy :'last_insert_id()'는 MySQL 내에서 실행되어야하며, mysql_query를 사용하고 INSERT와 SELECT 모두에 대해 동일한 연결을 사용해야합니다. –

1

: 하단에

show create table my_table; 

당신은 같은 것을 볼 수 있습니다 :

) ENGINE=MyISAM AUTO_INCREMENT=876159 DEFAULT CHARSET=latin1 | 

AUTO_INCREMENT하면 다음 ID가 될 것입니다 .

1

또 하나 개의 변형 -

SELECT `AUTO_INCREMENT` FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = '<table_schema>' AND TABLE_NAME = '<table_name>'; 
관련 문제