"Mads Lie Jensen" <mads@gartneriet.dk> wrote in message
news:4tgtuvc9blenv3tji32srvu130aikmu7mq@4ax.com...
> On Sun, 28 Dec 2003 11:14:32 +0100, "Jimmy"
> <nyhedsgruppe2@get2net.danmark> wrote:
>
> >> Det, den gør ved databaser der ikke direkte understøtter sequences (som
> >> fx. MySQL), er at den opretter en støtte-tabel med navnet
> >> "sekvensnavn_seq" indeholdende en kolonne med en række. Her i gemmes
det
> >> tal du nu engang er nået til i din sekvens, hvilket giver dig sikkerhed
> >> for at du med nextId() altid vil få et unikt identifikationsnummer
> >
> >Jeg er ikke med på hvordan den sikrer sig, at to brugere ikke modtager
samme
> >ID?
>
> Den bruger internt også last_insert_id(), men på den tabel hvor
> sequencen er gemt - ikke på den tabel du vil indsætte i.
Så hver gang der tildeles et ID henter den det fra sin egen tabel?
Betyder det at AUTO_INCREMENT populeres af de ID'er den henter fra sin egen
tabel?
Hvis jeg indsætter en række i hovedtabellen udenom PEAR bliver dens sequence
jo ikke opdateret.
Vil det så fejle?
Det er helt sort for mig det der system som I nok kan høre på mine spørgsmål
> >Det, som jeg synes er smart er følgende:
> >
> >INSERT INTO tabel () VALUES ()
> >Last_ID = SELECT LAST_INSERT_ID()
> >
> >UPDATE tabel SET
> > felt1 = vaerdi1,
> > felt2 = vaerdi2,
> > ...
> >WHERE ID = Last_ID
> >
> >
> >Den sidste SQL er langt mere overskuelig end den tilsvarende direkte
INSERT,
> >hvor det er noget sværere at stille navn og værdi-par på en letlæselig
måde,
> >når der er mange.
>
> I mysql kan du sagtens lave
> INSERT INTO tabel SET felt=værdi, fet2=værdi ...;
Langt ude!
Det virker jo!
Jeg har aldrig set noget lignende. Er det en ofte brugt syntaks?
Jeg vil da helt sikkert bruge den fremover når jeg har fundet den beskrevet
på mysql.com.
> >PEAR skulle kunne gøre noget lignende på alle database-systemer, men jeg
kan
> >slet ikke se, hvordan den kan finde det ID MySQL har tænkt sig at bruge
> >næste gang, tildele det til mig og samtidig sørge for at andre ikke får
det
> >uden at bruge en lås.
> >
> >Eller har jeg misforstået det så PEAR i virkelighed slet ikke arbejder
med
> >kolonnetypen AUTO_INCREMENT ?
>
> I princippet gør den ikke, for det er svjv kun i mysql at AUTO_INCREMENT
> findes - at den så i praksis tilsyneladende benytter sig at det til at
> emulere sequences er en anden sag.
Access har en autonumber som er identisk. Har MSSQL ikke også en der hedder
@IDENTITY?
Mvh
Jimmy