Posted By: Koles (...) on 'CZdatabases'
Title: Re: auto_increment v Postgresql
Date: Sat Oct 30 18:51:20 1999
Nekdy muze prehnana snaha o omezovani quotingu zpusobovat
ujmu na srozumitelnosti, pro jistotu doplnim body A) a B)
z puvodniho PaJaSoftova prispevku:
> > > a) pouzit klasicke sekvence, tedy create sequence, create table...
> > > (...., int a default nextval ('seq'));...
> > > b) pouzit typ serial
> > > Zpusob A) je z hlediska DDL cisty, zpusob B) je specialita PgSQL a
> > > jinych,
> > > pri prenosu mohou nastat potize...
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > Neni pravda, serial v PgSQL je pouze "makro", ktere vygeneruje
> > korektni sekvenci. Tj. pri dumpu ti vyjede korektni definice
> > pomoci sekvence a nikoli serial.
>
> A co ma pg_dump spolecneho s DDL pripadne s typem serial? To, ze
> pg_dump detekuje tuto vec takto je o necem jinem...
pg_dump je utilitka, po niz pravdepodobne sahnes, pokud se budes
snazit databazi prevest odnekud nekam jinam. Jak jiste vis, funguje
tak, ze ti vypise nejjednodussi posloupnost SQL prikazu nutne
k zaneseni aktualnich dat do ciste databaze.
Dovoluji si proto tvrdit, ze potize pri prenosu (v puvodnim "> > >"
textu podtrzeno) ve vetsine pripadu (tj. vzdy pri pouziti prikazu
pg_dump) nenastanou.
> je to stejne jako bys
> tvrdil, ze
> primary key je pouze makro... - samysli se nad tim, co rikas...
Zamyslim se nad tim, co jsem napsal, jako bonus pridavam
zamysleni nad tim, co pises ty, a zjistuji, ze
1, primary key neni pouze makro, protoze vytvari primarni
klic.
2, "datovy typ" serial je makro, ponevadz nevytvari zadny
datovy typ "serial", ale klasickou sekvenci (presne tak,
jak v bodu a) puvodniho prispevku navrhujes.
O tom je mozne se presvedcit jakymikoli trivialnimi
prostredky (d v psql, pripadne pg_dump).
> PS: Vem si primary key, pripadne foreignkey definici v tabulce a pak si dej
> dump... chces rici, ze je to ekvivalent?
Huh? Ekvivalent ceho? Vubec ti nerozumim.
Podstatne je, ze "serial" neni datovy typ, ale pouze
postgresove makro, ktere vytvari zcela standardni
a prenositelne sekvence.
Pavel