Posted By: PaJaSoft (Menhir Mover & Linux MAN) on 'CZdatabases'
Title:     Re: auto_increment v Postgresql
Date:      Wed Nov  3 22:05:12 1999

> > Zda-li je sekvence pouze makro u jednoho SQL serveru, 
> > kdo rika, ze musi stejna implementace byt i u jineho? 
> 
> Nikdo. Rozhodne ne ja. Dokonce ani nerikam, ze sekvence
> je makro u pgSQL, tvrdil jsem to o "typu" serial.

     Jenze i tak potom muzes rikat, ze primary key je u PgSQL makro...

> >      Omezenost pg_dump je hodne velka, funguje dobre pouze pro PgSQL,
> > vim o nekolika systemech, kde po nahrazeni tohoto Free engine bylo nutne 
> 
> "Vim o nekolika xxxx" je slovni vata, kterou se stridavymi
> uspechy pouzivas uz nekolik let :)

     No vis, ne kazdemu hned v uvodu rikam napr. to, ze jsem se podilel na 
vyvoji sberoveho systemu pro technologicke procesy napr. v Jaderne elektrarne 
Dukovany, Temeline, ze puvodni moje reseni je zmrseno a v podstate ukradeno na 
www.reax.cz/music (coz bohuzel po pravni strance nemohu dokazat:-(, 
pratele vsak vedi o co slo) atd... Takze tim XXX systemu myslim naprosto 
konkretni projekty u kterych jsem asistoval nebo na kterych jsem se primo 
vyvojove podilel a nektere nejsou ani zdaleka verejne abych se o nich vubec 
smel zminovat zde (doufam, ze timto jsem nyni nerekl nejake tajemstvi). 

> >      Jenze u serial cislo pretece
> > a jsi v pr. U DDL Ti to neni dovoleno, 
> 
> Toto je naprosto nesmyslna veta. U serial nemuze nic preteci,
> protoze serial nic neni :)

     '-) - opet narazim na jistou omezenost. Serial jsi rekl, ze je makro, mam 
za to, ze int4 ma jista omezeni... co se stane pokud ten int4 (uplne putna 
je, zda-li je signed nebo unsigned) pretece? Mame zase 1,2,3,... jenze 
primarni klic, ktery musi byt vzdy UNIQUE ti takoveto 'pretecene' cislo 
nevezme - v podstate se da rici, ze do tabulky s primarnim klicem typu int4 
nevlozis vice jak 'int4' zaznamu. Ovsem pokud pouzijes serial, pak prichazis o 
UNIQUE a tim padem to 'auto-increment' je hezke, ale jen do toho poctu 
int4... pak dostanes nesmysly... takze uz vidis, ze sequence + primary key je 
zcela neco jineho nez serial?

     Pravda, jsou datove modely, kde fyzicke omezeni int4 nevadi, stejne jako 
nesmi vadit 2GB / tabulka, otazka je, kdo to ohlida pote, co to pretece a 
jake nasledky si vyvojar privodi... 

> Pokud bys trval na tom, ze serial neni makro, ale opravdovy
> datovy typ, tak je to jediny ciselny datovy typ, ktery
> pretyct nemuze. Proc?

     Uz jsem vysvetlil...

> Co dela serial, se muzeme presvetcit sami.
> 
> V psql si v testovaci db vytvorime jednoduchou tabulku prikazem:
> 
> test=> create table test (id serial, name char(12), primary key (id));
> 
> (coz mimo jine psql okomentuje zminkama o tom, co nam pritom
> implicitne vyrobil).
> 
> A ted se kouknem, co nam to vlastne vzniklo:
> 
> pg_dump test
> CREATE SEQUENCE "test_id_seq" start 1 increment 1 maxvalue 2147483647
> minvalue 
> 1  cache 1 ;
> CREATE TABLE "test" (
>         "id" int4 DEFAULT nextval('test_id_seq') NOT NULL,
>         "name" character(12));
> [a tady jeste nasledujou data a indexy]
> 
> Tak. Tady se nam pgSQL sveruje s tim, ze pouzitim pseudotypu
> "serial" programator urcite myslel zcela korektni DDL
> vytvarejici auto inkrementujici se polozku za pomoci sekvence.

     Hmm.. stale mi v tom chybi to UNIQUE...

> Co tady podle tebe bude pretykat? Co je neprenostitelne?
> Chapes uz rozdil mezi auto_incrementem v mysql a serial
> v pgsql?

     Rozdil? Oboji je nestandardni rozsireni SQL, ktere neni podporovano nikde 
jinde a slouzi pouze omezene skupine vyvojaru, kteri se naucili programovat 
tak hura na projekty... asi jako umim klikat mysi hura na vizualni 
programovani. Pokud uvazuji o vaznejsich projektech a chteji je prodat 
seriozni firme budou si holt muset zvyknout dusledne dbat maximalni 
prenositelnosti (nebo budou pro kazdeho zakaznika prepisovat 60% kodu?) a 
dodrzovani standardu... 

     BTW ja jsem od zacatku doporucoval DDL variantu, o serial jsem se zminil 
jen v te souvislosti, ze pro pocatecni experiment je rychlejsi (upisu se 
mene)...
 

 ..s usmevem a laskou jde vsechno lip, nezapominejte na to v zivote..

                                                                     PaJaSoft

Search the boards