Kan man göra INSERT INTO databas och ange vilket ID nummer som raden ska få ?
Tidigare har jag bara låtit databasen ta valfritt ledigt men det fungerar inte riktigt för mig i detta fall....?
4 svar · 276 visningar · startad av mattiasnordin
Kan man göra INSERT INTO databas och ange vilket ID nummer som raden ska få ?
Tidigare har jag bara låtit databasen ta valfritt ledigt men det fungerar inte riktigt för mig i detta fall....?
Ja, det kan du göra, men då måste du se till att fältet inte är en räknare / identity.
Varför fungerar inte det i det här fallet?
Du kan ju alltid lägga till ett extrafält i tabellen för det ID-nummer du själv bestämmer.
Mvh,
Tack,
Jag kan nog lösa mitt problem på annat sätt. Har hittat en bugg i ett trådat klotterplank som jag har gjort. Bygger på att det finns en match mellan ID och TrådID någonstans för att det ska fungera. Sorterar nämligen alla meddelanden på ett kanske inte optimalt sätt.
Har nu insett att det inte alls är säkert att ID:et vid Insert Into blir samma ID nummer som det jag får fram med "max id + 1". Det har fungerat i alla test jag har gjort med min dator men tydligen inte på alla andras... ????
Hur som helst, har hittat felet och får hitta på en annan metod att uppdatera mitt orginalmeddelandets edited date... (sorteras efter detta)...
Nemas Problemas, hoppas jag :e
mattiasnordin skrev:
Har nu insett att det inte alls är säkert att ID:et vid Insert Into blir samma ID nummer som det jag får fram med "max id + 1". Det har fungerat i alla test jag har gjort med min dator men tydligen inte på alla andras... ????
Det har säkert att göra med att flera arbetar mot databasen samtidigt. Om någon annan gör en INSERT mellan att du räknade ut "maxid+1" och INSERTade, då får du ett annat ID.
När jag kör INSERT med ID, då använder jag mig av en så kallad "sekvens" som finns i Oracle. Man ställer frågor till den, precis som när man frågar om innehåll i tabeller. Svaret man får är ett nytt ID som man kan använda i sin insert. Eftersom genererandet av ID i det fallet sköts av databasen, riskerar man inte att någon annan skulle få samma ID, en risk som du löper när du räknar ut ditt ID i klientprogrammet. Jag antar att du gör som du gör därför att du vill ha koll på vilket ID den nya raden får. Den kollen får du med sekvenser som du frågar.
Det stämmer nog jättebra... Samma slutsats som jag har dragit
:(
Förklarar varför det har fungerat så bra när jag själv har testat det hela ...