24. februar 2003 - 10:48Der er
9 kommentarer og 1 løsning
INSERT - SELECT-Statment med default værdier.
Hej med jer.
Jeg skal kopiere al data fra en tabel over til en anden. Dette kan gøres med: INSERT INTO sales SELECT * FROM latest_data;
Mit problem er så bare, at i den nye tabel er der tilføjet 2 NOT NULL kolonner mere. Disse skal naturligvis have en værdi. Kan de sættes til nogle default værdier?
Altså noget i stil med: INSERT INTO sales(NewCol1='abc', NewCol2='def') SELECT * FROM latest_data;
(Alternativt må man fjerne sine NOL NULL imens man flytter data og oprette dem igen bagefter).
Du kan bruge en default constraint som den ene mulighed. alternativt, og måske bedre, mener jeg du bare kan lave INSERT INTO sales SELECT *, 0, 0 from latest_data;
Nej. Når du laver en insert into uden at angive felter, så lister du jo ikke felter. Når du laver en insert into sales(0,0) forventer den to felter, der begge hedder 0.
0,0 er bare værdierne til de to felter, der ikke må være null. Resten taget fra latest_data
The above two SELECT statements show the difference in the result set after using NVL to replace a NULL with some value that adds to the readability of the result set.
Hej. Hmmn. Jeg havde helt glemt, at jeg overhovedet have oprettet dette spørgsmål i sin tid, men fint nok. :o)
NVL betyder her blot, at hvis der ikke findes en værdi for 'times_lent' returneres 0. Er det ikke sådan?
Lad os så få lukket denne sag. Tak for dit svar.
Synes godt om
Ny brugerNybegynder
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.