IDENTITY(начальное_значение, шаг_приращения)
Например,
CREATE TABLE Records(
RecNum INT IDENTITY(0,1) PRIMARY KEY,
/* первичный ключ - это автоинкреметное поле
с начальным значением 0 и шагом приращения +1*/
Field_1 CHAR(10), ...-- описание прочих столбцов
);
Тип автоинкрементного столбца должен быть целочисленным (tinyint, smallint, int, bigint) или с фиксированной запятой (decimal(p,0); numeric(p,0)). Свойство IDENTITY не применяется совместно со свойствами DEFAULT и NULL. Разрешается иметь только один автоинкрементный столбец в таблице.
Для генерации значений автоинкрементного столбца сервер использует скрытую переменную-счетчик. Сервер следит за тем, чтобы при удалении какой-либо записи ее порядковый номер не был использован повторно.
Создание автоинкрементных столбцов в MySQL
MySQL разрешает иметь в таблице только один автоинкрементный столбец (счётчик). Он объявляется флагом AUTO_INCREMENT при создании таблицы. Тип столбца-счетчика – беззнаковый целый.
Таблицы типа MyISAM и InnoDB следят за тем, какие значения генерируются счетчиком, поэтому при удалении какой-либо записи ее порядковый номер не будет использован повторно. В таблицах других типов порядковый номер вычисляется путем прибавления единицы к максимальному значению столбца. Если из таблицы удалить все записи, нумерация снова начнется с единицы.
Тип таблицы и начальное значение счетчика можно задать табличными опциями
TYPE = тип_таблицы
AUTO_INCREMENT = начальное_значение /* действует только
на таблицы типа MyISAM */
Опция тип_таблицы определяет формат хранения таблицы и функциональные возможности. MySQL версии 3.23 поддерживает семь типов таблиц: ISAM, MyISAM (по умолчанию), Heap, Merge, InnoDB, Gemini, BerkleyDB (BDB). Поддержка транзакций реализована только в последних трех типах таблиц. Табличные опции указываются после операторов CREATE TABLE или ALTER TABLE, например:
Do'stlaringiz bilan baham: |