>  기사  >  데이터 베이스  >  현재 시퀀스 번호보다 작은 AUTO_INCRMENT 값을 변경하면 MySQL은 무엇을 반환합니까?

현재 시퀀스 번호보다 작은 AUTO_INCRMENT 값을 변경하면 MySQL은 무엇을 반환합니까?

PHPz
PHPz앞으로
2023-09-03 20:57:03702검색

当我们更改小于当前序列号的 AUTO_INCRMENT 值时,MySQL 返回什么?

MySQL 열에서 AUTO_INCREMENT를 사용하면 시퀀스 번호는 기본값 1 또는 우리가 지정한 값부터 시작하여 항상 오름차순으로 증가합니다.

이것이 MySQL이 AUTO_INCREMENT 값을 현재 시퀀스 번호보다 작은 값으로 변경하는 것을 허용하지 않는 이유입니다. 다음 예를 통해 이해할 수 있습니다.

Example

이 예에서는 'emp1'이라는 테이블이 있고 테이블을 생성하는 동안 AUTO_INCREMENT 값을 100으로 지정한다고 가정합니다. 따라서 테이블에 값을 삽입하면 아래 쿼리의 출력에 표시된 대로 시퀀스가 ​​100부터 시작됩니다.

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

이제 ALTER TABLE 쿼리의 도움으로 AUTO_INCRMENT 값을 90으로 변경하려고 하면 MySQL 쿼리가 제대로 작동하기 때문에 오류 및 경고를 반환하지 않지만 테이블에 새 값을 삽입하면 MySQL은 지정된 AUTO_INCRMENT 값을 현재 시퀀스 번호와 비교합니다. 지정된 AUTO_INCRMENT 값(90)이 현재 시퀀스 번호(101)보다 작으므로 MySQL은 102부터 새 값을 누적하기 시작합니다. 이는 다음 쿼리에서 확인할 수 있습니다. -

mysql> ALTER TABLE EMP1 AUTO_INCREMENT = 90;
Query OK, 2 rows affected (0.31 sec)
Records: 2 Duplicates: 0 Warnings: 0

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

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

반대로 변경하려고 하면 AUTO_INCRMENT가 현재 시퀀스 번호보다 높으면 MySQL은 지정된 값부터 시작하여 새로운 값을 누적합니다.

테이블에 'emp1'을 더 명확하게 표시하기 위해 AUTO_INCRMENT 값을 현재 시퀀스 번호보다 높은 108로 변경합니다. 그러면 MySQL은 지정된 AUTO_INCRMENT 값(즉, 108부터 시작)부터 새로 삽입된 값을 누적하기 시작합니다.

rreee

위 내용은 현재 시퀀스 번호보다 작은 AUTO_INCRMENT 값을 변경하면 MySQL은 무엇을 반환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제