Avatar billede xited Praktikant
17. marts 2008 - 03:24 Der er 15 kommentarer og
1 løsning

Syntaks-fejl jeg ikke kan finde

Hejsa,

Sikkert en dum fejl, men hvorfor mon dette ikke virker?

INSERT INTO mm_prisliste_produkt VALUES (1 /* (attribute PST_ID from file mm_prisliste_produkt) (typed INT(4)) */,
                                          1 /* (attribute PRO_ID from file mm_prisliste_produkt) (typed INT(4)) */,
                                          0 /* (attribute KAM_ID from file mm_prisliste_produkt) (typed INT(4)) */,
                                          199 /* (attribute PRO_PRIS from file mm_prisliste_produkt) (typed DECIMAL(19,4)) */,
                                          0 /* (attribute PRO_PRIS_KAMPAGNE from file mm_prisliste_produkt) (typed DECIMAL(19,4)) */,
                                          /* (attribute KAM_ORDER from file mm_prisliste_produkt) (typed INT(4)) */
);

Det giver denne fejl:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 7
Avatar billede arne_v Ekspert
17. marts 2008 - 03:27 #1
Du har et komma efter den sidste værdi !
Avatar billede arne_v Ekspert
17. marts 2008 - 03:27 #2
0 /* (attribute PRO_PRIS_KAMPAGNE from file mm_prisliste_produkt) (typed DECIMAL(19,4)) */, <--------------------------------------
                                          /* (attribute KAM_ORDER from file mm_prisliste_produkt) (typed INT(4)) */
);
Avatar billede arne_v Ekspert
17. marts 2008 - 03:28 #3
0 /* (attribute PRO_PRIS_KAMPAGNE from file mm_prisliste_produkt) (typed DECIMAL(19,4)) */,<--------------------------------------
/* (attribute KAM_ORDER from file mm_prisliste_produkt) (typed INT(4)) */
);
Avatar billede xited Praktikant
17. marts 2008 - 09:57 #4
Nej, KAM_ORDER er den sidste værdi!
Avatar billede arne_v Ekspert
17. marts 2008 - 14:17 #5
Der er kun en kommentar for den.
Avatar billede xited Praktikant
17. marts 2008 - 14:46 #6
Hvordan efterlader man så den sidste værdi som dens standardværdi?

Men kan jo nemt hoppe en værdi over med 2 kommaer, men hvorfor så ikke med den sidste værdi?
Avatar billede xited Praktikant
17. marts 2008 - 15:00 #7
'' duer jo ikke, når det er en integer
Avatar billede arne_v Ekspert
17. marts 2008 - 15:05 #8
Angiv de felter du har vaerdi for efter tabel navnet.

INSERT INTO tabel(felt2, felt3, felt7) VALUES(val2, val3, val7)
Avatar billede xited Praktikant
17. marts 2008 - 15:31 #9
Problemet er at værdierne kommer fra en stor database (25000 produkter) og ikke alle værdier er angivet i hver række. - Jeg skal bare have det ind i MySQL som en "kopi" - Jeg parser det fra en kommasepareret fil, der ikke umiddelbart er MySQL kompatibel.

Jeg skal iøvrigt have alle værdier ind, så der er vel ingen idé i at fortælle den hvilke felter der er tale om?
Avatar billede xited Praktikant
23. marts 2008 - 00:08 #10
Hmm... jeg giver op! - Point?

Ved du tilfældigvis hvordan man foretager regneoperationer i en SQL-insert?

Man kan tilsynelandende ikke bare angive værdien som VAR1 * VAR2
Avatar billede arne_v Ekspert
23. marts 2008 - 04:35 #11
Man kan ikke lave regne operationer i en INSERT.

Du kan lave regne operationer i en UPDATE.
Avatar billede arne_v Ekspert
23. marts 2008 - 04:35 #12
Og et svar.
Avatar billede xited Praktikant
23. marts 2008 - 13:48 #13
Tak for hjælpen! - Så må jeg inserte først, og update, bagefter.
Avatar billede xited Praktikant
23. marts 2008 - 14:16 #14
Jeg kan godt bruge en multiplikator...

INSERT into hmm (decim,count) values (4*.02,2)

Problemet kommer når jeg bruger variable som måske ikke er definerede.

Kan man lave en SELECT der sætter nogle bestemte variable til 0, hvis de ikke er definerede?
Avatar billede arne_v Ekspert
23. marts 2008 - 23:10 #15
Du kan lave:

UPDATE tabel SET felt = 0 WHERE felt IS NULL

og:

SELECT IFNULL(felt,0) FROM tabel
Avatar billede arne_v Ekspert
23. marts 2008 - 23:10 #16
Men jeg er stadig ikke sikker på om det er hvad du har brug for.
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