❓ 궁금증
MySQL 데이터베이스를 MSSQL로 마이그레이션(이주)하는 과정이 있었다.
MySQL에서 타입은 int이고 default값은 auto increment로 사용되던 sequence number값의 타입이 uniqueidentifier로 변하고, default값은 newsequentialid로 변했다.
이에 두 RDBMS에서 어떤 차이가 있는지 궁금해서 알아보게 되었다.
MSSQL의 uniqueidentifier 타입
MSSQL 데이터 타입의 한 종류이다.
16바이트의 GUID (Global Unique Identifier)이다.
해당 타입의 컬럼이나 로컬 변수는 아래와 같이 초기화가 가능하다.
- NEWID 또는 NEWSEQUENTIALID를 사용하여 초기화할 수 있다.
- xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 형식의 문자열이고, x는 16진수로 표현된다. 해당 문자열은 유니크하다.
(=, <>, <, >, <=, >=)의 연산자에 의해 대소비교가 가능하다.
(IS NULL, IS NOT NULL)로 NULL 체크가 가능하다.
❓ subscriptions updating와 함께 병합 replication과 transactional replication는 복제할 여러 테이블에서 튜플이 유니크함을 보장하기 위해 uniqueidentifier를 사용한다.
Converting uniqueidentifier Data
다른 사이즈의 character 표현을 uniqueidentifier 타입으로 바꿀 때 주의가 필요하다.
uniqueidentifier는 36개의 characters로 제한되어있으므로, 해당 길이보다 긴 char가 들어오면 truncate된다.
제약 사항
PolyBase와 dwloader loading tool for Parallel Data Warehouse에서는 uniqueidentifier 데이터 타입을 지원하지 않는다.
📖 출처
'개발 > 기타' 카테고리의 다른 글
컬럼의 DEFAULT 조건에 대한 고찰 (0) | 2021.06.08 |
---|---|
SCRAP] 인증서 관련 모든 것 (0) | 2020.12.03 |
Git 필요할 때 한번씩 찾게되는 명령어 (0) | 2020.11.18 |
Linux] 명령어 (작성 중) (0) | 2020.07.23 |
[CSS] <div> 안의 이미지, 텍스트 중앙에 놓기 (0) | 2020.01.15 |