posledni automaticky generovany id a prenositelnost

Michal Kubecek mike na mk-sys.cz
Úterý Červenec 27 12:03:47 CEST 2004


On Mon, Jul 26, 2004 at 09:44:15PM +0200, Novák Jiří wrote:
>
> firebird a interbase : tez nevim

Nepoužívají se automaticky generovaná ID, ale generátory.

Takže např.

  create generator G_AAA;

  create table AAA (
    ID integer not null primary key,
    ...
  );

  insert into AAA(ID, ...) values (gen_id(G_AAA,1), ...);

Případně si můžete udělat trigger:

  create trigger TRG_AAA_BINS on AAA before insert as
  begin
    if (new.ID is null) then new.ID = gen_id(G_AAA, 1);
  end

Pokud potřebujete získat právě přidanou hodnotu, můžete použít proceduru:

  create procedure NEW_AAA(...)
    returns (R integer)
  as
  begin
    R = gen_id(G_AAA, 1);
    insert into AAA(ID, ...) values (:R, ...);
  end

Z hlediska přenositelnosti vás to asi moc nenadchne, protože přístup se
dost výrazně liší od většiny ostatních.

							  Michal Kubeček 



Další informace o konferenci Test