|
|
su.dbms- SU.DBMS ---------------------------------------------------------------------- From : Alex Oshev 2:5020/400 05 Jun 2001 07:27:36 To : All Subject : Re: Hа: Informix --------------------------------------------------------------------------------
On Mon, 4 Jun 2001 13:24:10 +0000 (UTC), Sergey Practh wrote:
>Hi!
>> свойствами, identity неприменим, приходится реализовывать самому. При этом
>> важно, что бы это можно было сделать "прямо".
>
> Да не получится разработать нормальный механизм эмуляции IDENTITY,
>что-то подобное - да. Только работать оно будет при очень ограниченных
>условиях. Hе веришь мне, спроси у Лили или Толика Тецнера.
А чем вот так плохо? Какие здесь подводные камни?
create table sOrdersID
(orddate date not null primary key,
id smallint not null);
create trigger GetSalesID
no cascade before insert on sales
referencing new as n
for each row mode db2sql
set n.ordid=(select id from sOrdersID where orddate=n.orddate);
create trigger IncSalesID
after insert on sales
referencing new as n
for each row mode db2sql
update sOrdersID set id=id+1 where orddate=n.orddate;
И вставляешь запись с ordid=0, а триггер исправляет на нужное значение
Это реально работает. Да, кол-во insert в минуту очень мало. Вероятно,
такое решение не подойдет для большого потока инсертов..
Зато очень удобно (имхо).
Просто у _разных_ серверов _разные_ возможности и каждый выбирает диалект
SQL
по вкусу (_мне дб2 понравилась, тем более что она сейчас где только не
живет,
даже на PalmOS и WinCE)
Алексей
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms/534713d162a1.html, оценка из 5, голосов 10
|