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

MySQL에서 테이블의 AUTO_INCREMENT 값 확인하는 방법

MySQL에서 테이블의 AUTO_INCREMENT 값을 확인하고 싶다면 크게 두 가지 방법을 사용할 수 있습니다. 하나는 SHOW TABLE STATUS 명령어를 이용하는 것이고, 다른 하나는 information_schema 데이터베이스를 조회하는 것입니다.

방법 1: SHOW TABLE STATUS 명령어 사용

테이블 상태 정보를 출력하는 SHOW TABLE STATUS 명령어를 사용하면 AUTO_INCREMENT 값을 포함한 다양한 테이블 정보를 한 번에 확인할 수 있습니다.

기본 문법은 다음과 같습니다.

SHOW TABLE STATUS LIKE 'yourTableName'\G

방법 2: information_schema 조회

MySQL의 메타데이터가 저장된 information_schema.TABLES 테이블을 직접 조회하여 원하는 값만 깔끔하게 가져올 수도 있습니다.

SELECT `AUTO_INCREMENT`
    FROM `information_schema`.`TABLES`
    WHERE `TABLE_SCHEMA` = 'yourDatabaseName'
    AND `TABLE_NAME` = 'yourTableName';

실습 예제로 확인하기

위 두 가지 문법을 실제로 이해하기 위해 예제 테이블을 생성해 보겠습니다.

1. 테이블 생성

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

UserId 컬럼은 AUTO_INCREMENT 속성을 가진 기본 키로 설정되어, 레코드가 삽입될 때마다 자동으로 1씩 증가합니다.

2. 레코드 삽입

이제 INSERT 명령어로 몇 개의 레코드를 삽입해 보겠습니다.

mysql> insert into viewAutoIncrementDemo(UserName) values('John');
Query OK, 1 row affected (0.18 sec)
mysql> insert into viewAutoIncrementDemo(UserName) values('Carol');
Query OK, 1 row affected (0.14 sec)
mysql> insert into viewAutoIncrementDemo(UserName) values('Bob');
Query OK, 1 row affected (0.08 sec)
mysql> insert into viewAutoIncrementDemo(UserName) values('Sam');
Query OK, 1 row affected (0.12 sec)
mysql> insert into viewAutoIncrementDemo(UserName) values('Mike');
Query OK, 1 row affected (0.14 sec)
mysql> insert into viewAutoIncrementDemo(UserName) values('David');
Query OK, 1 row affected (0.16 sec)
mysql> insert into viewAutoIncrementDemo(UserName) values('Larry');
Query OK, 1 row affected (0.11 sec)

3. 전체 레코드 조회

SELECT 문으로 테이블의 모든 레코드를 확인해 보겠습니다.

mysql> select *from viewAutoIncrementDemo;

실행 결과는 다음과 같습니다.

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

7개의 레코드가 순서대로 삽입되었으며, UserId는 1부터 7까지 자동으로 증가한 것을 볼 수 있습니다.

AUTO_INCREMENT 값 확인 결과

SHOW TABLE STATUS 실행 결과

첫 번째 방법인 SHOW TABLE STATUS 명령어를 실행해 보겠습니다.

mysql> SHOW TABLE STATUS LIKE 'viewAutoIncrementDemo'\G

출력 결과는 다음과 같습니다.

*************************** 1. row ***************************
           Name: viewautoincrementdemo
         Engine: InnoDB
        Version: 10
     Row_format: Dynamic
           Rows: 7
 Avg_row_length: 2340
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: 8
    Create_time: 2019-03-02 04:05:20
    Update_time: 2019-03-02 04:06:11
     Check_time: NULL
      Collation: utf8_general_ci
       Checksum: NULL
 Create_options:
        Comment:
1 row in set (0.08 sec)

결과 중 Auto_increment: 8 항목을 주목하세요. 현재 마지막 레코드의 UserId가 7이므로, 다음에 삽입될 레코드에는 8이 할당된다는 의미입니다.

information_schema 조회 결과

두 번째 방법으로 information_schema를 조회해 보겠습니다. 여기서는 데이터베이스 이름이 'sample'이라고 가정합니다.

mysql> SELECT `AUTO_INCREMENT`
   -> FROM `information_schema`.`TABLES`
   -> WHERE `TABLE_SCHEMA` = 'sample'
   -> AND `TABLE_NAME` = 'viewAutoIncrementDemo';

출력 결과는 다음과 같습니다.

+----------------+
| AUTO_INCREMENT |
+----------------+
| 8              |
+----------------+
1 row in set (0.00 sec)

두 방법 모두 동일하게 8이라는 값을 반환합니다. 테이블의 전체 상태 정보가 필요하다면 첫 번째 방법을, AUTO_INCREMENT 값만 간단히 확인하고 싶다면 두 번째 방법이 더 효율적입니다.