programing

MariaDB 기본 키와 고유 키

bestcode 2022. 11. 8. 21:49
반응형

MariaDB 기본 키와 고유 키

어떤 면에서는 이 질문이 이것으로부터 이어진다.MariaDB 설명서의 금지 사항 중 하나는 프라이머리 키가 없는 클러스터된 데이터베이스에 테이블을 두는 것이 바람직하지 않음을 나타냅니다.어플리케이션에서는 Primary 키 없이 테이블마다 1개의 UNIQE 키(VARCHAR(8)를 사용하고 있습니다.PRIMAY 키는 단지 특수한 종류의 UNIQUIK 키에 불과합니다.질문 - 현재 사용 중인 UNIQURE 키는 MariaDB Galera를 만족시키기 위한 적절한 키입니까?아니면 UNIQURE를 PRIMARY로 변환해야 합니까?외견상 이것은 나에게 별로 말이 되지 않지만 아마도 그렇게 하는 이유가 있을 것이다.

가 없는 경우PRIMARY키, InnoDB/XtraDB는 먼저 이 키를 사용하여UNIQUE둘 다 존재하지 않으면 galera 노드 간에 신뢰할 수 없는 내부 기본 키를 구성합니다.

맞는 말이다PRIMARY키는 기본적으로UNIQUE유일한 차이점은 하나밖에 없다는 것이다PRIMARY또한 데이터의 물리적 레이아웃에도 사용되지만 여기서는 그다지 중요하지 않습니다.

하나뿐인 한UNIQUE인덱스, 괜찮을 거야하지만 하나 더 추가한다면 믿을 수 없을 것 같습니다.UNIQUE그렇기 때문에, 그리고 좋은 관행을 위해서, 당신은 아마 그것을 만들어야 할 것이다.UNIQUE인덱스를 작성하다PRIMARY열쇠.

기본 키를 사용하려면 열이 NULL이 아니어야 합니다.

표에서CREATE TABLE p (a INT, b INT, UNIQUE (a));IS NULL에는 2개의 행을 사용할 수 있습니다.

표에서CREATE TABLE p2 (a INT, b INT, PRIMARY KEY (a));열은 자동으로 NOT NULL 열이 됩니다.

SHOW CREATE TABLE p2;
CREATE TABLE `p2` (
  `a` int(11) NOT NULL DEFAULT '0',
  `b` int(11) DEFAULT NULL,
  PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

언급URL : https://stackoverflow.com/questions/22433143/mariadb-primary-key-vs-unique-key

반응형