Avatar billede ulrik-nielsen Nybegynder
21. marts 2010 - 13:57 Der er 2 kommentarer

INSERT INTO med SELECT FROM

Jeg har et problem med følgende kald:
INSERT INTO mytable (`order`,`number`) SELECT '1','2' FROM mytable

Det virker fint på min debian server: 5.0.51a-24+lenny3
Men ikke på min nyere Windows: 5.1.40-community
Dvs. der kommer ingen fejl på Windows serveren, men jeg får:
Inserted rows: 0

Hvad kan det skyldes? Er der ændret på funktionalitet fra 5.0 til 5.1?

I det endelige kald bruger jeg (MAX(`order`)+1) istedet for '1'.
På debian virker det fint, men Windows med:
SELECT (MAX(`order`)+1) FROM mytable
retunerer NULL hvis der ikke findes nogen rækker i tabellen.

Hvad kan forskellen på de to servere skyldes, og er der nogen der har et løsningsforslag?
Avatar billede arne_v Ekspert
21. marts 2010 - 14:18 #1
SELECT (MAX(`order`)+1) FROM mytable

skal returnere NULL hvis der ingen rækker er.
Avatar billede arne_v Ekspert
26. april 2010 - 03:18 #2
Men konstruktionen er iøvrigt normalt en katastrofe p.g.a. dens uegnethed til flerbruger systemer inkl. web apps.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester