SQL/MySQL

[MariaDB,MySQL] auto_increment 속성을 가지는 테이블의 다음 시퀀스값을 알고 싶을때

http://portfolio.wonpaper.net 2024. 3. 5. 22:25

[MySQL] 가장 최근에 입력한 idx값 얻어오기 last_insert_id , mysql_insert_id (tistory.com)

 

[MySQL] 가장 최근에 입력한 idx값 얻어오기 last_insert_id , mysql_insert_id

개발하다 보면 자주 접하는 부분이다. insert 문으로 DB 입력을 하면 그 최근의 idx 값을 불러와야 할때 쓰이는 두 함수 이다. 차이점은 last_insert_id 는 mysql 구문내에서 쓰이고, mysql_insert_id 는 PHP상

wonpaper.tistory.com

 

 

 

특정테이블에서 PK 값이  보통의 경우 auto_increment 속성을 가지는 경우가 많다. 

이때,  간단히 다음 시퀀스의 PK 값을 바로 알고 싶을때

 

 

SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = '디비명' AND TABLE_NAME = '테이블명';

 

$query = "SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'DB' AND TABLE_NAME = 'table_name';";
$lastRes = mysqli_query($conn,$query) or die("Error1");
$lastRow = mysqli_fetch_row($lastRes);
$lastNum = $lastRow[0];

 

 

또는

 

select LAST_INSERT_ID() from 테이블명  

으로  방금 생성된 시퀀스 값을 얻었으나,

$root = mysql_insert_id(); 

 

PHP형태

$query = "INSERT INTO table (field1, field2) VALUES (value1, value2)";
$result = mysql_query($query);
if ($result)
$last_uid = mysql_insert_id();

 

MySQL형태

$query = "INSERT INTO table (field1, field2) VALUES (value1, value2)";
$result = mysql_query($query);
if ($result)
$last_uid = mysql_query("last_insert_id()");

 

 

참고 : https://jos39.tistory.com/191