Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

FireBird i PrimaryKey automatsko povecavanje

[es] :: Firebird/Interbase :: FireBird i PrimaryKey automatsko povecavanje

[ Pregleda: 4141 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

KrunoV
Krunoslav Vukovic
Tehnicar
Zagreb

Član broj: 34632
Poruke: 69
*.adsl.net.t-com.hr.

ICQ: 166260921
Sajt: www.on-line.com.hr


Profil

icon FireBird i PrimaryKey automatsko povecavanje07.12.2004. u 23:25 - pre 235 meseci
Evo posto sam poceo prelaziti sa mysql na firebird malo se mucim sa nekim prblemima koje nisam imao u mysql-u.

Prebacio sam podatke iz mysql-a u firebird i sada mi se desava da kada dodjem u insertu do id koji vec postoji da mi izbaci gresku da to vec postoji i to je to, napravio sa trigere koji rade donekle, tj napravio sam neki autoincesment pomocu generatora ali postoji problem sto on samo povecava id za jedan i opet se vracamo na prvi problem jer u mojoj bazi postoje upisi npr sa ID=1 pa slijedeci ID=6.

Zanima me dali postoji neko rijesenje da firebird sam prebaci na slijedeci slobodni ID ako ovaj vec postoji ili da prebaci na slijedeci ID od onog koji je najveci u bazi.

Pozdrav,
Kruno
--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: http://www.on-line.com.hr
Mail : [email protected]
Sonork: 100.53370
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
*.yubc.net.

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje08.12.2004. u 10:01 - pre 235 meseci
Citat:
jer u mojoj bazi postoje upisi npr sa ID=1 pa slijedeci ID=6.

Mozes li ovo da pojasnis?
S jedne strane, ako ti sam generises ID po nekoj tvojoj logici (1 pa 6), onda nije lose da ta logika bude takva da nemas nikad sva ista IDa (recimo jmbg - ne znam kakva ti je baza).
S druge strane, mozes da pustis bazu da to radi, ali ce onda IDevi da idu od 1 pa do xyz, i uvek ce se poslednji povecati za 1. Bice "rupa" ako bude brisanja, ali to ne bi trebalo da utice na tebe.
JaFreelancer.com
 
Odgovor na temu

KrunoV
Krunoslav Vukovic
Tehnicar
Zagreb

Član broj: 34632
Poruke: 69
*.com.hr
Via: [es] mailing liste

ICQ: 166260921
Sajt: www.on-line.com.hr


Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje08.12.2004. u 16:01 - pre 235 meseci
>
>
>
problem je u tome da su podatci prebaceni iz mysql-a i firebird i to sa
id-em iz mysql-a i tu nastaje problem jer kod svakog korisnika programa
je razlicit broj upisa u bazu i meni je nemoguce znati koji je njegov
zadnji osim da to radim u kodu programa, ali mene zanima dali postoji
neko rijesenje da to radi sama baza i onda pocme slijedece unose sa
povecavanjem zadnjeg za jedan ili vec kako se odredi.

Kada je baza prazna onda nema problema jer je uvijek prvi nula.

--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: www.on-line.com.hr
Mobile: +385(0)98-623-959
Mail : [email protected]
--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: http://www.on-line.com.hr
Mail : [email protected]
Sonork: 100.53370
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
*.yubc.net.

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje08.12.2004. u 16:16 - pre 235 meseci
Ako je MySQL jos ziv, odradi ponovo prebacivanje, ali bez kopiranja IDa, nego pusti da Firebird stavi nove IDe sam.
JaFreelancer.com
 
Odgovor na temu

KrunoV
Krunoslav Vukovic
Tehnicar
Zagreb

Član broj: 34632
Poruke: 69
*.com.hr
Via: [es] mailing liste

ICQ: 166260921
Sajt: www.on-line.com.hr


Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje08.12.2004. u 17:13 - pre 235 meseci
>
>
>
ok, hvala probaop sam i radi ok.
Dali mozda znas neki dobar alat za firebird koji moze da exportira i
importira tabele i podatke u xls file.
Nesto kao EMS-ov menager ali da je free ili barem jeftino

--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: www.on-line.com.hr
Mobile: +385(0)98-623-959
Mail : [email protected]
--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: http://www.on-line.com.hr
Mail : [email protected]
Sonork: 100.53370
 
Odgovor na temu

VRider
Marković Damir
(BGD/SD Karaburma)/Pirot

Član broj: 1510
Poruke: 4132
*.yubc.net.

Jabber: damirm | gmail | com
ICQ: 134002435


+13 Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje08.12.2004. u 17:44 - pre 235 meseci
Najgora stvar kod Firebirda je ocajna dokumentacija (u poredjenju sa PostgreSQLom i MySQLom), tako da bas i nema sta da se konsultuje po tom pitanju.
Najbolje sto meni pada na pamet je pisanje tako necega u perlu. To nije nista komplikovano. Kroz DBI se moze pristupiti i jednom i drugom.
JaFreelancer.com
 
Odgovor na temu

KrunoV
Krunoslav Vukovic
Tehnicar
Zagreb

Član broj: 34632
Poruke: 69
*.com.hr
Via: [es] mailing liste

ICQ: 166260921
Sajt: www.on-line.com.hr


Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje08.12.2004. u 18:04 - pre 235 meseci
>
>
>
ok, thanx

--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: www.on-line.com.hr
Mobile: +385(0)98-623-959
Mail : [email protected]
--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: http://www.on-line.com.hr
Mail : [email protected]
Sonork: 100.53370
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
217.16.77.*

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje09.12.2004. u 07:45 - pre 235 meseci
Generatori, su u principu samo 64 bitne brojeve koje se povecavaju sa GEN_ID funkcijom za neku vrednost koja se zada GEN_ID kao parametar. Znaci mozes dobiti niz vrednosti koji ide ovako:
1,11,21,31 ako GEN_ID pozoves sa inkrementom 10 (GEN_ID(ime_generatora, 10)). Kad je rec o tvom problemu, onda ako su MySQL ID polja sa maksimalnoj vrednosti 10 000 onda mozes setirati generator na vrednosti 10 000 (SET GENERATOR ime_generatora TO 10000;), pa onda Firebird-ove ID-ja ce biti >= 10 000.

Jedna veoma interesantna informacija je da generator zivi izvan transakcije. Ako na primer imamo jedan insert i za tabeli u kojoj insertuje podatke imamo triger before insert koji generira ID uz pomoc generatora, startujemo transakciju, pokusamo insert u tabeli, triger se izvrsava i generira ID za datom insertu, onda insert radi nekih ogranicenja (not null ?! ili constraint neki) ne uspe da insertuje podatke u tabeli. Kad transakcija uradi Rollback, onda normalno podatke nema nigde nit sta i da bilo drugo koje je bilo u toj istoj transakciji. Ali, generator ipak ima vrednosti inkrementiranoj za 1 (ili vise).

Sto znaci, ako imam jednu uspesnu transakciju, 5 neuspelih potom pa opet jednu koja je ok, onda podatke ce da imaju ID = 1, pa ID = 6 i sl (ukoliko gen_id ima inkrement 1).

People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

KrunoV
Krunoslav Vukovic
Tehnicar
Zagreb

Član broj: 34632
Poruke: 69
*.com.hr
Via: [es] mailing liste

ICQ: 166260921
Sajt: www.on-line.com.hr


Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje09.12.2004. u 13:02 - pre 235 meseci
>
>
>
>
>
po tome bi bilo moguce da se onda pokusava izvesti insert dok ne dodje
to slobodnog id jer ce on stalno povecavati za odredjeni broj pa makar i
insert nije uspio, to je dobro znati, hvala..

--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: www.on-line.com.hr
Mobile: +385(0)98-623-959
Mail : [email protected]
--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: http://www.on-line.com.hr
Mail : [email protected]
Sonork: 100.53370
 
Odgovor na temu

Riste Pejov
Team Leader/Senior Software Developer @
Ein-Sof ltd Skopje
Skopje, Macedonia

Član broj: 128
Poruke: 571
217.16.77.*

Jabber: richie@bagra.net.mk
ICQ: 154236769
Sajt: riste.softver.org.mk


Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje10.12.2004. u 07:15 - pre 235 meseci
Citat:
KrunoV: >
po tome bi bilo moguce da se onda pokusava izvesti insert dok ne dodje
to slobodnog id jer ce on stalno povecavati za odredjeni broj pa makar i
insert nije uspio, to je dobro znati, hvala..


Kruno, pa to i nije neka sjajna ideja, narocito kad znamo da se radi od bazi sa versioning systemom, koji za svaku transakciju ima po jednu verziju recorda. E sad zamisli da u tvojoj transakciji imas prvo select pa onda insert, i za svakog neuspelog inserta select upise novu verziju selektiranih recorda .... i onda ako imas 10K recorda taj isti select stigne do brojke od ~10K verzija ..... ghmmmm ...

ipak ... najbolje selectiraj najvecu vrednost autoincrementa u MySQL i postavi generatorovu pocetnu vrednost na te vrednosti. A ako zelis da tvoj kvazi autoinc u FB ima uzastopne vrednosti, onda generator nije resenje. Mozes pokusati da stvoris novu tabelu, u kojoj ces cuvati jedan record kao counter i svaki put kad trebas ID onda selectiras MAX value, incrementiras za jedan i update-ujes, i to sve strpas u Serializible (trx sa isolation "write consistency" u FB-u) transakciji
People who think they know everything tend to irritate those of us who do.
 
Odgovor na temu

KrunoV
Krunoslav Vukovic
Tehnicar
Zagreb

Član broj: 34632
Poruke: 69
*.com.hr
Via: [es] mailing liste

ICQ: 166260921
Sajt: www.on-line.com.hr


Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje10.12.2004. u 11:00 - pre 235 meseci
>
>
>
>
>
ma nisam ni mislio tako nesto rjesavati jer zbilja nebi imalo smisla,
ali da je dobro znati je. Inace moj je problem rijesen, samo sto sam
koristio ems menager za to jer ovi drugi bas i nemaju funkcije koje su
mi trebale, a to je da odaberem samo ono sto hocu prebaciti iz jedne
baze u drugu, a ne sve sto se nalazi u tabli pa tako i ID.

--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: www.on-line.com.hr
Mobile: +385(0)98-623-959
Mail : [email protected]
--

Best regards, Mali ( Kruno )

ON-LINE Soft, Inc

URL: http://www.on-line.com.hr
Mail : [email protected]
Sonork: 100.53370
 
Odgovor na temu

ultraKeen
ultraKeen
Zemun

Član broj: 2396
Poruke: 289
*.222.EUnet.yu.

ICQ: 36109339
Sajt: ultrakeen.blogspot.com


+1 Profil

icon Re: FireBird i PrimaryKey automatsko povecavanje13.12.2004. u 05:47 - pre 235 meseci
>incrementiras za jedan i update-ujes,
>i to sve strpas u Serializible
>(trx sa isolation "write consistency" u FB-u) transakciji

kako to "trpanje" konkretno izvodis ?

mislim na sintaksu, kao pises...

postoji samo jedan apsolut u logickoj ravni desavanja/vremena:
SVE je RELATIVNO sem:
- osnovnih konstanti svemira
- logike
...i ove tvrdnje
*
Daniel J. Boorstin: The Discoverers, A History of Man’s Search To Known

Napredak nauke zavisice od covekove spremnosti da poveruje u neverovatno, da prekoraci granicu koju namece zdrav razum.
 
Odgovor na temu

[es] :: Firebird/Interbase :: FireBird i PrimaryKey automatsko povecavanje

[ Pregleda: 4141 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.