source

mysql의 SERIAL과 AUTO_INCREMENT의 차이점은 무엇입니까?

factcode 2022. 10. 27. 23:01
반응형

mysql의 SERIAL과 AUTO_INCREMENT의 차이점은 무엇입니까?

mysql의 ID를 자동으로 증가시키는 두 가지 방법이 있습니다.

하나는 SERIAL이고 다른 하나는 AUTO INCREMENT입니다.

그래서 내가 테이블을 만들고 싶다고 가정해 보자, 친구들아.다음과 같은 두 가지 방법으로 만들 수 있습니다.

1)

mysql> create table myfriends(id int primary key auto_increment,frnd_name varchar(50) not null);

2)

mysql> create table myfriends(id serial primary key,frnd_name varchar(50) not null);

그 둘의 차이점은 무엇입니까?

또는

다른 방법보다 장점이 있는 방법이 있습니까?

제발 도와주세요.

문서와 같다

시리얼은 BIGINT UNSIGNED NOT NULL AUTO_Increment Unique의 별칭입니다.

따라서 시리얼 PK에 대한 참조를 생성할 때는 참조 열의 유형이 이와 동일해야 하므로 주의하십시오.

AUTO_INCREMENT 는 부호 있는 컬럼과 부호 없는 컬럼의 임의의 수치 유형(int 또는 float)의 속성입니다.행을 삽입하면 순차 번호가 자동으로 할당되므로 (예를 들어 를 사용하여) 할 필요가 없습니다.LAST_INSERT_ID()http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html 를 참조해 주세요.

SERIAL 는 컬럼 타입 캐스팅을 조합한 에일리어스입니다.BIGINT구체적으로는)AUTO_INCREMENT,UNSIGNED및 특정 컬럼의 기타 속성(아래 문서 인용 참조)https://dev.mysql.com/doc/refman/8.0/en/numeric-type-syntax.html 를 참조해 주세요.

시리얼은 BIGINT UNSIGNED NOT NULL AUTO_Increment Unique의 별칭입니다.

정수열 정의의 시리얼 기본값은 NOT NULL AUTO_INCREMENT UNIQUICE의 별칭입니다.

mysql 문서에서

시리얼은 BIGINT UNSIGNED NOT NULL AUTO_Increment Unique의 별칭입니다.

정수열 정의의 시리얼 기본값은 NOT NULL AUTO_INCREMENT UNIQUICE의 별칭입니다.

AUTO_INCREMENT 열에 값이 지정되지 않은 경우 MySQL은 시퀀스 번호를 자동으로 할당합니다.열에 NULL 또는 0을 명시적으로 할당하여 시퀀스 번호를 생성할 수도 있습니다.행을 삭제해도 MySQL은 자동 증분 값을 자동으로 줄이지 않습니다.이유:

  • 데이터 무결성이 손상될 위험이 있습니다(여러 사용자가 삭제 또는 삽입을 수행한다고 가정하면...이중 엔트리가 발생하거나 더 악화될 수 있습니다.)
  • 마스터 슬레이브 복제 또는 트랜잭션을 사용할 때 오류가 발생할 수 있습니다.

언급URL : https://stackoverflow.com/questions/20021983/what-is-the-difference-between-serial-and-auto-increment-in-mysql

반응형