/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Postgres og transactions
Fra : Morten Breum Mikkels~


Dato : 29-04-01 13:58

Jeg sidder lige og leger lidt med at bruge begin og end for at kunne
undo'e ændringer i min postgresql database.

Jeg arbejder med en tabel, der indeholder nogle tal, fx

id(unique) | text
-------------------
12 | ligegyldig
13 | tekst i
14 | hver post

Jeg har lavet et web-interface, der kan vise sammenhængende tal i én
linje, og jeg gad godt kunne opdatere tabellen ved i mit interface at
vælge start og slutnummer.
Jeg har forsøgt en løsning, hvor jeg ved hver opdatering sletter de
eksisterende poster og indsætter på ny (jeg indsætter altså poster
magen til dem, jeg lige har slettet, hvis talrækken overlapper)

Jeg kunne godt tænke mig, at hvis noget gik galt under proceduren,
kunne jeg rollback'e til udgangspunktet. Mit forsøg er i pseudokode:

udfør #begin;#
for alle $sletID
udfør #delete from tbl_tabel where id=$sletID;#
hvis fejl udfør #rollback;#
for alle $indsaetID
udfør #insert into tbl_tabel values ($indsaetID,'en_tekst')#
hvis fejl udfør #rollback;#
hvis ingen fejl udfør #end;#

Det går galt, hvis nogle af $indsaetID'erne er samme som $sletID'erne.

Hvis jeg udfører en "END;" efter at have slettet poster, så kan jeg da
ikke få dem tilbage igen (hvis inserts'ene fejler), vel?

Håber I forstår hvor jeg vil hen, og kan give et skub.

Tak,
--
Morten
Red meat is NOT bad for you.
Now, blue-green meat, that's REALLY BAD for you.

 
 
Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408857
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste