Jak udelat v mysql sekvence?

Michal Kubecek mike na mk-sys.cz
Středa Srpen 27 13:52:40 CEST 2003


On Wed, Aug 27, 2003 at 08:43:11AM +0200, Michal Samek wrote:

> potreboval bych nejak v mysql udelat field auto_increment, ale tak, aby
> cislovani ve 2 samostatnych databazich (ktere se budou oproti sobe
> obousmerne replikovat - to je jednoduche a to si udelam v pythonu -
> nemyslim replikaci mysql) bylo nezavisle - negenerovalo duplicitni
> klice. V postgresu bych udelal jednoduse sekvenci, ktera by na jednom
> stroji zacinala od 1 a na druhem treba od 100000 a ta sekvence mi udrzi
> spravne cislovani. Nebo inkrementovat o 2 tak, ze jedna rada bude suda a
> druha licha. V mysql ale urcit inkrement imho nelze, default hodnoty
> musi byt staticke, triggery mysql asi jeste nema, ani nic podobneho
> sekvenci. A kdyz pouziju auto_increment, tak se mi cislovani automaticky
> zvedne nad posledni nejvetsi - asi si to udrzuje prubezne maximum. 
> 
> Potrebuju, aby to fungovalo jako implicitni hodnota fieldu, aby se
> nemuselo sahat do kodu a udrzovat to.

Tak udělejte něco jako

create table TBL (
  SRC smallint default 1,
  ID integer autoincrement, /* nebo jak je ta syntaxe */
  ...
  primary key (SRC,ID)
);

a v druhé tabulce si dejte k SRC default 2.

> Napada vas nekoho neco? Krome migrace na postgresql, kterou beru jako
> nouzove reseni? Dik

Neřekl bych nouzové. Spíš perspektivní... :-). Nebo zkuste Firebird.

                                                         Michal Kubeček


Další informace o konferenci Databases