Автоинкремент для временных таблиц |
Для создания автоинкрементного индекса во временных таблицах необходимо описать автоинкрементный ключ по правилам обычных таблиц Атлантиса.
Автоинкрементация реализуется средствами СУБД (в отличии от обычных таблиц).
Для доступа к последнему значению автоинкрементного ключа доступна глобальная переменная #IDENTITY. Переменная возвращает последнее значение сгеренированного в текущей сессии любого автоинкрементного ключа.
Пример 1. Создание автоинкрементного индекса.
sqlAddStr(s, 'table aaa3'); sqlAddStr(s, '('); sqlAddStr(s, ' code : longint,'); sqlAddStr(s, ' val : longint,'); sqlAddStr(s, ' name : string[80]'); sqlAddStr(s, ')'); sqlAddStr(s, 'with index'); sqlAddStr(s, '('); sqlAddStr(s, ' a0 = name'); sqlAddStr(s, ' ,a1 = code(autoinc)'); sqlAddStr(s, ');'); sqlCreateTmpTable(s, ctmNormal ); sqlFreeStr(s);
Пример 2. Использование глобальной переменной #IDENTITY
sql insert into aaa3 (name,val) values ('a',0); sql insert into aaa3 (name,val) values ('b',0); sql insert into attrnam (wtable,name,rtype) values (199,'last',#identity);
Начиная с Атлантис 5.4.15.