Jak udelat v mysql sekvence?

Honza Pazdziora adelton na informatics.muni.cz
Středa Srpen 27 13:51:06 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.

Domnivam se, ze cistymi SQL prostredky to neudelate. Pokud tim
neudrzovanim myslite, ze chcete mit na obou instancich jedno SQL, tak
asi nejjednodussi bude napsat si na to UDF, ktera to osetri. Pak
budete spoustet na obou systemech ten samy kod a v kazdem Vam to da
jinou sekvenci.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, mod_perl, DBI, Oracle, auth. WWW servers, XML/XSL, ...
		Only self-confident people can be simple.


Další informace o konferenci Databases