MySQL-테이블을 생성하는 동안 함께 사용되는 경우 "PRIMARY KEY", "UNIQUE KEY"및 "KEY"의 의미
사람의 목적에 대해 설명 할 수 PRIMARY KEY, UNIQUE KEY그리고 KEY그것이 하나에 함께 넣어 경우, CREATE TABLEMySQL은 문?
CREATE TABLE IF NOT EXISTS `tmp` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`tag` int(1) NOT NULL DEFAULT '0',
`description` varchar(255),
PRIMARY KEY (`id`),
UNIQUE KEY `uid` (`uid`),
KEY `name` (`name`),
KEY `tag` (`tag`)
) ENGINE=InnoDB AUTO_INCREMENT=1 ;
이 쿼리를 MSSQL로 어떻게 변환합니까?
키는 일반 색인입니다. 단순화를 넘어서는 한 가지 방법은 도서관의 카드 카탈로그처럼 생각하는 것입니다. MySQL을 올바른 방향으로 가리 킵니다.
검색 속도 향상을 위해 고유 키도 사용되지만 중복 항목이있을 수 없다는 제약이 있습니다 (x가 y가 아니고 x == y 인 경우 x와 y가 두 개 없습니다).
매뉴얼은 다음과 같이 설명합니다 :
UNIQUE 인덱스는 인덱스의 모든 값이 고유해야하는 제약 조건을 만듭니다. 기존 행과 일치하는 키 값이있는 새 행을 추가하려고하면 오류가 발생합니다. 이 제약 조건은 BDB 스토리지 엔진을 제외하고 NULL 값에는 적용되지 않습니다. 다른 엔진의 경우 UNIQUE 인덱스는 NULL을 포함 할 수있는 열에 대해 여러 NULL 값을 허용합니다. UNIQUE 인덱스의 열에 접두사 값을 지정하는 경우 열 값은 접두사 내에서 고유해야합니다.
기본 키는 '특별한'고유 키입니다. 무언가를 식별하는 데 사용된다는 점을 제외하면 기본적으로 고유 한 키입니다.
매뉴얼은 색인이 일반적으로 사용되는 방법을 설명합니다. 여기 .
MSSQL에서 개념은 비슷합니다. 인덱스, 고유 제약 조건 및 기본 키가 있습니다.
테스트되지 않았지만 MSSQL에 해당하는 것은 다음과 같습니다.
CREATE TABLE tmp (
id int NOT NULL PRIMARY KEY IDENTITY,
uid varchar(255) NOT NULL CONSTRAINT uid_unique UNIQUE,
name varchar(255) NOT NULL,
tag int NOT NULL DEFAULT 0,
description varchar(255),
);
CREATE INDEX idx_name ON tmp (name);
CREATE INDEX idx_tag ON tmp (tag);
편집 : 위의 코드가 올바른지 테스트되었습니다. 그러나 나는 그것을하기위한 훨씬 더 나은 구문이 있다고 생각한다. SQL 서버를 사용한 지 오래되었고 분명히 꽤 잊어 버렸습니다. :).
다른 답변에 추가하기 위해 문서 는 다음과 같은 설명을 제공합니다.
KEY일반적으로INDEX. 키 속성PRIMARY KEY은KEY열 정의에 지정된 경우와 같이 지정할 수도 있습니다 . 이것은 다른 데이터베이스 시스템과의 호환성을 위해 구현되었습니다.
UNIQUE인덱스는 인덱스의 모든 값은 구별되어야하는 제약 등 만듭니다. 기존 행과 일치하는 키 값이있는 새 행을 추가하려고하면 오류가 발생합니다. 모든 엔진를 들어,UNIQUE인덱스는 여러 허용NULL포함 할 수 있습니다 열 값을NULL.A
PRIMARY KEY는 모든 키 열이로 정의되어야하는 고유 인덱스NOT NULL입니다. 명시 적으로으로 선언되지 않은 경우NOT NULLMySQL은이를 암시 적으로 (그리고 조용히) 선언합니다. 테이블에는PRIMARY KEY. a의 이름PRIMARY KEY은 항상PRIMARY이므로 다른 종류의 색인에 대한 이름으로 사용할 수 없습니다.
MySQL 고유 및 기본 키는 행을 식별하는 역할을합니다. 테이블에는 하나의 기본 키만있을 수 있지만 하나 이상의 고유 키가있을 수 있습니다. 열쇠는 단지 색인입니다.
자세한 내용은 http://www.geeksww.com/tutorials/database_management_systems/mysql/tips_and_tricks/mysql_primary_key_vs_unique_key_constraints.php에서 확인할 수 있습니다 .
mysql을 mssql로 변환하려면 이것을 시도하고 http://gathadams.com/2008/02/07/convert-mysql-to-ms-sql-server/를 참조하십시오.
'program story' 카테고리의 다른 글
| .net의 배열 유형에서 배열 항목 유형을 가져 오는 방법 (0) | 2020.11.24 |
|---|---|
| mysqldump가 진행률 표시 줄을 지원합니까? (0) | 2020.11.24 |
| IPython 노트북에서 코드가 실행되었는지 어떻게 확인할 수 있습니까? (0) | 2020.11.24 |
| 외부 스크립트가로드되었는지 확인 (0) | 2020.11.23 |
| Fragment # setRetainInstance (boolean)를 사용하는 이유는 무엇입니까? (0) | 2020.11.23 |