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의 별칭입니다.
시리얼은 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
'source' 카테고리의 다른 글
Java에 파일이 있는지 확인하려면 어떻게 해야 하나요? (0) | 2022.10.27 |
---|---|
바이너리 트리의 밸런스 여부를 확인하는 방법 (0) | 2022.10.27 |
MySQL: 가져올 때 오류 무시? (0) | 2022.10.27 |
Linux용 무료 경량 MySQL GUI를 추천해 주시겠습니까? (0) | 2022.10.27 |
네이티브 테이블 'performance_schema'.--?'는 잘못된 구조를 가지고 있습니다. (0) | 2022.10.27 |