MySQL LAST_INSERT_ID()

1 개요[ | ]

MySQL LAST_INSERT_ID()
  • 최근 INSERT한 자료의 ID 반환
  • AUTO_INCREMENT에 따라 생성된 최근 ID

2 실습[ | ]

Console
Copy
mysql> SELECT * FROM employee;
+----+------------+-----------+
| id | first_name | last_name |
+----+------------+-----------+
|  1 | John       | Smith     |
+----+------------+-----------+
1 row in set (0.00 sec)
Console
Copy
mysql> INSERT INTO employee (first_name, last_name) VALUES ('Jane', 'Doe');
Query OK, 1 row affected (0.01 sec)
Console
Copy
mysql> SELECT * FROM employee;
+----+------------+-----------+
| id | first_name | last_name |
+----+------------+-----------+
|  1 | John       | Smith     |
|  2 | Jane       | Doe       |
+----+------------+-----------+
2 rows in set (0.01 sec)
Console
Copy
mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
|                2 |
+------------------+
1 row in set (0.00 sec)

3 PHP 예시[ | ]

  • mysqli
PHP
Copy
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
$mysqli->query("INSERT INTO employee (first_name, last_name) VALUES ('Jane', 'Doe')");
echo 'New Record has id ' . $mysqli->insert_id;
  • PDO
PHP
Copy
$dbh = new PDO('mysql:host=localhost;dbname=world', 'my_user', 'my_password');
$sth = $dbh->prepare("INSERT INTO employee (first_name, last_name) VALUES (?, ?)");
$sth->execute(array('Jane','Doe'));
echo 'New Record has id ' . $dbh->lastInsertId();

4 같이 보기[ | ]

5 참고[ | ]

편집자 J Jmnote Jmnote bot
  • CentOS MySQL 설치
    RHEL5.x 버전에서 MySQL-5.5.45 버전 설치시, /usr/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data 와 같이 설정해 주지 않으면 정상 동작하지 않는 경우가 있었습니다. 확인 바랍니다.
  • MySQL BigDump
    'MySQL server has gone away'는 백업본 전체의 크기가 크다기 보다는, 특정 쿼리문 1개의 크기가 너무 커서 처리를 못하는 거라서, 이런 도구로 해결하기는 어려울 것 같습니다.J Jmnote
  • MySQL STRICT TRANS TABLES
    @Jmnote 감사합니다.~ John Jeong
  • MySQL 외래키 옵션 변경
    진짜 필요한 거였는데 이런걸 이제야 알다니 정말 감사합니다. 문태부
  • MySQL 컬럼명으로 테이블 찾기
    회사 가서 쓰기 좋은 코드 1추 Stly3466