반응형
Auto_Increment > Auto increment 로 지정된 Column은 데이터가 추가될 시, 자동으로 해당 값을 할당 해줍니다.
아래 테이블에서는 id가 auto_increment로 지정되어 있습니다.
+------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(50) | NO | | NULL | |
| email | varchar(100) | NO | | NULL | |
| created_at | timestamp | NO | | CURRENT_TIMESTAMP | |
+------------+--------------+------+-----+-------------------+----------------+
+----+----------+---------------+---------------------+
| id | username | email | created_at |
+----+----------+---------------+---------------------+
| 1 | ryu | ryu@test.com | 2024-03-18 01:21:47 |
| 2 | kim | kim@test.com | 2024-03-18 01:21:47 |
| 3 | shin | shin@test.com | 2024-03-18 01:21:47 |
| 4 | oh | oh@test.com | 2024-03-18 01:21:47 |
| 5 | jeon | jeon@test.com | 2024-03-18 01:21:47 |
| 6 | chun | chun@test.com | 2024-03-18 01:21:47 |
| 7 | baek | baek@test.com | 2024-03-18 01:21:47 |
| 8 | lee | lee@test.com | 2024-03-18 01:21:47 |
+----+----------+---------------+---------------------+
8번까지 데이터에서 8을 지우고 다음 행 삽입하면, 8부터가 아니라, 9부터 시작합니다.
또, 전 단계에서 수행한 delete 문으로 모든 행을 지웠을 시에도
동일하게 데이터의 마지막 행 이후부터 ID 값이 시작합니다.(아래 예시 참고)
+----+----------+----------------+---------------------+
| id | username | email | created_at |
+----+----------+----------------+---------------------+
| 1 | ryu | ryu@test.com | 2024-03-18 01:21:47 |
| 2 | kim | kim@test.com | 2024-03-18 01:21:47 |
| 3 | shin | shin@test.com | 2024-03-18 01:21:47 |
| 4 | oh | oh@test.com | 2024-03-18 01:21:47 |
| 5 | jeon | jeon@test.com | 2024-03-18 01:21:47 |
| 6 | chun | chun@test.com | 2024-03-18 01:21:47 |
| 7 | baek | baek@test.com | 2024-03-18 01:21:47 |
| 8 | park | park@test.com | 2024-03-18 01:38:24 |
| 9 | jeong | jeong@test.com | 2024-03-18 01:55:06 |
| 17 | jeong | jeong@test.com | 2024-03-18 01:56:25 |
+----+----------+----------------+---------------------+
위 테이블은 예시로 9에서 17로 바로 건너 뛴 것을 확인 할 수 있습니다.
방법은 2가지가 있으나.. update 문으로는 현재 상황에서만 변경하는 거라서,
신규 데이터를 추가하면, 또 다시 발생합니다.
ALTER TABLE 을 사용하여, 다시 현재 테이블에 맞게 1부터 시작하도록 합니다.
사용할 SQL > ALTER TABLE {TABLE} AUTO_INCREMENT = 1;
1. 17번에 위치한 Data를 삭제합니다.
delete from users where id = 17;
2. alter table 로 테이블 구조를 변경합니다.
ALTER TABLE users AUTO_INCREMENT = 1;
3. insert 데이터 삽입 확인
INSERT INTO users(username, email) values('jeong', 'jeong@test.com');
MariaDB [test]> insert into users(username, email) values('jeong', 'jeong@test.com');
Query OK, 1 row affected (0.00 sec)
MariaDB [test]> select * from users;
+----+----------+----------------+---------------------+
| id | username | email | created_at |
+----+----------+----------------+---------------------+
| 1 | ryu | ryu@test.com | 2024-03-18 01:21:47 |
| 2 | kim | kim@test.com | 2024-03-18 01:21:47 |
| 3 | shin | shin@test.com | 2024-03-18 01:21:47 |
| 4 | oh | oh@test.com | 2024-03-18 01:21:47 |
| 5 | jeon | jeon@test.com | 2024-03-18 01:21:47 |
| 6 | chun | chun@test.com | 2024-03-18 01:21:47 |
| 7 | baek | baek@test.com | 2024-03-18 01:21:47 |
| 8 | park | park@test.com | 2024-03-18 01:38:24 |
| 9 | jeong | jeong@test.com | 2024-03-18 01:57:40 |
+----+----------+----------------+---------------------+
MariaDB [test]> insert into users(username, email) values('yu', 'yu@test.com');
+----+----------+----------------+---------------------+
| id | username | email | created_at |
+----+----------+----------------+---------------------+
| 1 | ryu | ryu@test.com | 2024-03-18 01:21:47 |
| 2 | kim | kim@test.com | 2024-03-18 01:21:47 |
| 3 | shin | shin@test.com | 2024-03-18 01:21:47 |
| 4 | oh | oh@test.com | 2024-03-18 01:21:47 |
| 5 | jeon | jeon@test.com | 2024-03-18 01:21:47 |
| 6 | chun | chun@test.com | 2024-03-18 01:21:47 |
| 7 | baek | baek@test.com | 2024-03-18 01:21:47 |
| 8 | park | park@test.com | 2024-03-18 01:38:24 |
| 9 | jeong | jeong@test.com | 2024-03-18 01:57:40 |
| 10 | yu | yu@test.com | 2024-03-18 01:58:30 |
+----+----------+----------------+---------------------+
위와 같이 9,10번으로 정상적으로 들어간 것을 확인할 수 있습니다.
반응형
'Database' 카테고리의 다른 글
[Database] MariaDB - Select, Insert, Update, Delete(5) (0) | 2024.03.18 |
---|---|
[Database] MariaDB - Select, Insert, Update, Delete(4) (0) | 2024.03.18 |
[Database] MariaDB - Select, Insert, Update, Delete(3) (0) | 2024.03.14 |
[Database] MariaDB - Select, Insert, Update, Delete(2) (0) | 2024.03.14 |
[Database] MariaDB - Select, Insert, Update, Delete(1) (0) | 2024.03.14 |