program story

MySQL-테이블을 생성하는 동안 함께 사용되는 경우 "PRIMARY KEY", "UNIQUE KEY"및 "KEY"의 의미

inputbox 2020. 11. 24. 07:57
반응형

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 KEYKEY열 정의에 지정된 경우와 같이 지정할 수도 있습니다 . 이것은 다른 데이터베이스 시스템과의 호환성을 위해 구현되었습니다.

  • 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/를 참조하십시오.

참고 URL : https://stackoverflow.com/questions/10908561/mysql-meaning-of-primary-key-unique-key-and-key-when-used-together-whil

반응형