Уважаемые коллеги,
Перед новым годом в Celesta была добавлена поддержка создания и
использования объектов типа SEQUENCE (см. в рассылке письмо Ивана
Головко).
Теперь реализация столбца с автоматически инкрементируемым
значением возможна таким образом:
CREATE SEQUENCE idNumerator;
CREATE TABLE customTable (
id int DEFAULT NEXTVAL(idNumerator) not null,
CONSTRAINT pk_customTable PRIMARY KEY (id)
);
На уровне базы данных используется функциональность SEQUENCE. Для
MSSQLServer данная функциональность появилась с версии 2011, для
SQL Server 2009 этой функциональности не существует, поэтому
полная поддержка всех возможностей Celesta теперь осуществляется только
начиная с MSSQL 2011. (На MSSQL2009 будут работать
Celesta-скрипты, не использующие SEQUENCE).
Ключевое слово IDENTITY является теперь нежелательным к
использованию. Его реализация в Celesta "под капотом"
применяет объекты типа SEQUENCE для всех СУБД, кроме MS SQL. Для
MS SQL применяется грубая медленная эмуляция (из-за чего в таблицы
с IDENTITY для MSSQL низкая скорость вставки).
С уважением,
Иван Пономарёв