Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 가장 높은 AUTO_INCREMENT 값 조회하는 방법

MySQL에서 AUTO_INCREMENT로 설정된 컬럼의 최댓값, 즉 가장 마지막에 생성된 자동 증분 값을 확인해야 하는 경우가 자주 있습니다. 이 글에서는 예제 테이블을 만들고, 가장 높은 자동 증분 값을 조회하는 방법을 단계별로 살펴보겠습니다.

1. AUTO_INCREMENT 테이블 생성하기

먼저 UserId 컬럼을 AUTO_INCREMENT 기본 키로 설정한 테이블을 생성합니다.

mysql> create table DemoTable
(
    UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    UserName varchar(20)
);
Query OK, 0 rows affected (0.56 sec)

2. 샘플 데이터 삽입하기

INSERT 명령을 사용하여 테이블에 여러 개의 레코드를 추가합니다.

mysql> insert into DemoTable(UserName) values('John');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(UserName) values('Larry');
Query OK, 1 row affected (0.35 sec)
mysql> insert into DemoTable(UserName) values('Chris');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(UserName) values('Bob');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(UserName) values('Carol');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(UserName) values('David');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(UserName) values('Robert');
Query OK, 1 row affected (0.20 sec)

3. 전체 데이터 확인하기

SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+--------+----------+
| UserId | UserName |
+--------+----------+
| 1      | John     |
| 2      | Larry    |
| 3      | Chris    |
| 4      | Bob      |
| 5      | Carol    |
| 6      | David    |
| 7      | Robert   |
+--------+----------+
7 rows in set (0.00 sec)

4. 가장 높은 자동 증분 값 조회하기

UserId 컬럼을 내림차순(DESC)으로 정렬한 뒤 첫 번째 행만 가져오면, 가장 큰 자동 증분 값을 가진 레코드를 확인할 수 있습니다.

mysql> select *from DemoTable order by UserId desc limit 0,1;

실행 결과, 가장 높은 자동 증분 값이 포함된 행이 출력됩니다.

+--------+----------+
| UserId | UserName |
+--------+----------+
| 7      | Robert   |
+--------+----------+
1 row in set (0.00 sec)

참고: MAX() 함수로 더 간단하게 조회하기

레코드 전체가 아닌 최댓값 자체만 필요하다면 MAX() 함수를 사용하는 것이 더 효율적입니다.

mysql> select max(UserId) from DemoTable;

참고: LAST_INSERT_ID() 함수

현재 세션에서 마지막으로 삽입된 AUTO_INCREMENT 값을 바로 확인하고 싶다면 LAST_INSERT_ID() 함수를 활용할 수 있습니다. 다만 이 함수는 세션 단위로 동작하므로, 다른 클라이언트의 삽입 결과에는 영향을 받지 않는다는 점을 기억하세요.