mysql Cоздание таблицы с уникальным полем (ключом) UNIQUE INDEX -- пример SQL

Forums:

Для столбца alias как-то так:

CREATE TABLE `InfoBlock` (
	`infoBlockID` INT(11) NOT NULL AUTO_INCREMENT,
	`title` VARCHAR(255) NULL DEFAULT NULL,
	`alias` VARCHAR(255) NOT NULL COMMENT 'Машинное имя',
	`text` TEXT NULL,
	`isActive` TINYINT(1) NULL DEFAULT '1',
	PRIMARY KEY (`infoBlockID`),
	UNIQUE INDEX `alias` (`alias`)
)
COMMENT='\'\'Универсальная\'\' таблица для хранения блоков данных'
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;

-- коде этой SQL-команды:

  • помимо PRIMARY KEY столбца `infoBlockID` (ведь главный ключ автоматически подразумевает и поддерживает ограничение уникальности, т.е. в таком столбце не может быть неуникальных в рамках таблицы значений), требование уникальности предъявлено ещё к одному столбцу -- а именно к "alias".
  • Теперь СУБД не даст создать в таблице два кортежа с одинаковым alias (создастся исключительная ситуация -- т.е. произойдёт ошибка).