Gå til innhold

Anbefalte innlegg

Hei

 

Jeg skal sette opp en database som noen andre har laget (men som jeg ikke får tak i),

men får #1064 error som jeg ikke skjønner (=kan ikke MySQL).

Databasen ble skrevet for 3.6, men serveren min bruker 4.1 så jeg regner med at det er noe der....

 

Server version: 5.0.45-community

phpMyAdmin - 2.11.4

MySQL client version: 4.1.22

 

Tusen takk for all hjelp!

 

Harald

 

Error

 

SQL query: Documentation

 

CREATE PROCEDURE `DeltagerlagH_Read` ( _turneringID Bigint ) NOT DETERMINISTICSQL SECURITY DEFINER COMMENT '' BEGIN SELECT deltagerlag.`lagID` , lag.`lagNavn` , lag.`klasseID` , deltagerlag.`deltagerlagID` , lag.`klubbID`

FROM `deltagerlag`

JOIN lag ON deltagerlag.`lagID` = lag.`lagID`

JOIN turnering ON turnering.`turneringID` = deltagerlag.`turneringID`

WHERE `deltagerlag`.`turneringID` = _turneringID

AND lag.klasseID = "1";

 

MySQL said: Documentation

#1064 - 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 10

 

Edit:

Vedlagt ligger hele sql "basen" jeg prøver å sette opp.

 

Edit2:

[løst]

UVR.txt

Endret av spurious
Lenke til kommentar
Videoannonse
Annonse

Du kjører MysQL 5x, ikke 4x eller 3x ;)

 

The error 1064 occurs due to Mysql version mismatch,because differnt

versions have differnt

reserved words,which if used by a previous version causes the error to

occur.

 

The simplest and most effective solution for it is.

-when using phpMyadmin,select the "compatibility mode" & select the

target db version from the drop down box.

-when using MySql administrator,while backing up choose "compatibility

mode" in adavanced tab ,

and while restoring through mysql administrator ,click "auto-detect

file charater set" if backup was not made using mySql administrator.

the default file characer set used by mysql admministrator is utf8.

Prøv det ;)

Lenke til kommentar

5.0? hehe... ja det forteller vel litt om hvor mye kunnskap om MySQL jeg har...

 

Men jeg har faktisk prøvd SQL kompatibilitetsmodus! Både den som heter MYSQL323 og MYSQL40

uten at det hjalp.

 

Jeg har også vært innom "reserved words",

men jeg kan ikke si at jeg så noen ord som ble brukt feil.

 

Jeg har også prøvd uten fnutter (´) men heller ikke det hjalp :(

 

mvh

Harald

Lenke til kommentar

Jeg fant en mulig løsning :)

 

Delimiter! Setter jeg Delimiter til å være // og legger til // på slutten av kodesnutten så funker det :)

CREATE PROCEDURE `DeltagerlagH_Read`( _turneringID Bigint)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
Begin
 Select deltagerlag.`lagID`, lag.`lagNavn`, lag.`klasseID`,
		deltagerlag.`deltagerlagID`, lag.`klubbID` from `deltagerlag`
 join lag on deltagerlag.`lagID` = lag.`lagID`
 join turnering on turnering.`turneringID` = deltagerlag.`turneringID`
 Where `deltagerlag`.`turneringID` = _turneringID AND lag.klasseID = "1";
end;
//

 

Fant tipset på create-procedure.

 

Men spørsmålet mitt blir nå hvordan jeg skal editiere uvr.sql fila slik at den funker.

For når jeg oppretter tabellene trenger jeg vel Delimiter til å være ;, mens ved "Create Procedure"

så må jeg endre den til //.

 

Må jeg endre alle "Create Procedure" til:

delimiter //
CREATE PROCEDURE `DeltagerlagH_Read`( _turneringID Bigint)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
Begin
 Select deltagerlag.`lagID`, lag.`lagNavn`, lag.`klasseID`,
		deltagerlag.`deltagerlagID`, lag.`klubbID` from `deltagerlag`
 join lag on deltagerlag.`lagID` = lag.`lagID`
 join turnering on turnering.`turneringID` = deltagerlag.`turneringID`
 Where `deltagerlag`.`turneringID` = _turneringID AND lag.klasseID = "1";
end;
//
delimiter;

 

Harald

Endret av spurious
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...