08. november 2002 - 16:34Der er
15 kommentarer og 1 løsning
REFERENCE i MySql
jeg har en database som bliver ved med at give fejl ( skyldes jo en uspesificeret fejl 40) men her er hvad jeg forsøger:
CREATE TABLE spil ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(20), admin INT UNSIGNED NOT NULL REFERENCE person(id) forhistorie TEXT, baggrund TEXT, regler TINYTEXT, spiller TINYINT(1), kikker TINYINT(1), PRIMARY KEY (id) )
og her er den fejl jeg får:
You have an error in your SQL syntax near 'REFERENCE person(id) forhistorie TEXT, baggrund TEXT, regler TINYTEXT, spill' at line 5
Hvis du vil have det til at virke, skal du ændre det til:
CREATE TABLE spil ( id INT NOT NULL AUTO_INCREMENT, title VARCHAR(20), admin INT UNSIGNED NOT NULL REFERENCES person(id) forhistorie TEXT, baggrund TEXT, regler TINYTEXT, spiller TINYINT(1), kikker TINYINT(1), PRIMARY KEY (id) ) TYPE=INNODB;
Standard tabelformattet (MyISAM) understøtter ikke fremmednøgler og dermed REFERENCES, og MySQL vil bare smide oplysningen væk når den har konstateret at sætningen ellers er korrekt syntax mæssigt :-)
INNODB er et af flere tabel formater som MySQL understøtter.
MyISAM (default), ISAM (på vej ud) og HEAP er de simple tabelformater som giver langt den bedste performance ved brug af MySQL. HEAP formattet skal KUN benyttes temporær data, da HEAP tabeller udelukkende gemmes i memory, og dermed taber indholdet ved genstart af MySQL/server.
INNODB og BDB tabelformaterne er noget langsommere, men tilbyder tilgengæld transaktionssupport og fremmednøgler.
Det er fuldt ud muligt, at have bruge forskellige tabelformater i samme database, sålænge man kan bevare overblikket.
Generelt: benyt MyISAM tabeller til det meste, og INNODB når du faktisk har brug for fremmednøgler eller transaktioner.
flse>> Tak for overblikket over tabelformaterne i øvrigt. Jeg vil straks lave mine tabeller om til MyISAM (altså dem hvor der ikke benyttes foreign keys)
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.