Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL AUTO_INCREMENT 시작 번호를 어떻게 변경할 수 있습니까?

<시간/>

MySQL AUTO_INCREMENT 값은 1부터 시작하지만 다음 두 가지 방법으로 변경할 수 있습니다. -

ALTER TABLE 쿼리의 도움으로

ALTER TABLE 쿼리를 사용하여 AUTO_INCREMENT의 시작 값을 다음과 같이 변경할 수 있습니다. -

ALTER TABLE table_name AUTO_INCREMENT = value;

예시

'id' 열이 AUTO_INCREMENT인 테이블을 생성했다고 가정합니다. 이제 값을 삽입하면 다음 쿼리에서 볼 수 있듯이 시퀀스 번호가 1부터 시작합니다.

mysql> Create Table EMP(id int NOT NULL PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10));
Query OK, 0 rows affected (0.07 sec)

mysql> Insert Into EMP(Name) Values('Aryan');
Query OK, 1 row affected (0.02 sec)

mysql> Insert Into EMP(Name) Values('Yash');
Query OK, 1 row affected (0.04 sec)

mysql> Select * from EMP;
+----+-------+
| id | NAME  |
+----+-------+
| 1  | Aryan |
| 2  | Yash  |
+----+-------+
2 rows in set (0.00 sec)

이제 시퀀스 번호를 나중에 변경하려면 ALTER TABLE 쿼리를 사용하여 AUTO_INCREMENT 값을 다음과 같이 변경해야 합니다. -

mysql> Alter table emp auto_increment = 10;
Query OK, 2 rows affected (0.25 sec)
Records: 2 Duplicates: 0 Warnings: 0

mysql> Insert Into EMP(Name) Values('Daksh');
Query OK, 1 row affected (0.03 sec)

mysql> Insert Into EMP(Name) Values('Shayra');
Query OK, 1 row affected (0.06 sec)

mysql> Select * from EMP;
+----+--------+
| id | NAME   |
+----+--------+
| 1  | Aryan  |
| 2  | Yash   |
| 10 | Daksh  |
| 11 | Shayra |
+----+--------+
4 rows in set (0.00 sec)

위의 쿼리는 AUTO_INCREMENT의 값을 10으로 변경했으므로 이후에 새 값을 삽입할 때 10부터 시퀀스 번호를 가져옵니다.

CREATE TABLE 쿼리 사용

테이블을 생성하는 동안 AUTO_INCREMENT 값을 변경할 수도 있습니다. 다음과 같이 CREATE TABLE 쿼리로 AUTO_INCREMENT 값을 지정하여 수행할 수 있습니다. -

CREATE TABLE (Column1 INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Column2 data type) AUTO_INCREMENT = value;

예시

mysql> Create Table EMP1(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10)) AUTO_INCREMENT = 100;
Query OK, 0 rows affected (0.11 sec)

위의 쿼리는 테이블 생성 시 AUTO_INCREMENT 값을 100으로 지정했습니다. 이제 값을 삽입하면 시퀀스 번호는 다음과 같이 기본값 1 대신 100에서 시작합니다. -

mysql> Insert into emp1(name) values('Sohan');
Query OK, 1 row affected (0.04 sec)

mysql> Insert into emp1(name) values('Harshit');
Query OK, 1 row affected (0.05 sec)

mysql> Select * from emp1;
+-----+---------+
| id  | NAME    |
+-----+---------+
| 100 |   Sohan |
| 101 | Harshit |
+-----+---------+
2 rows in set (0.00 sec)