Avatar billede cridonori Nybegynder
08. november 2002 - 16:34 Der 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

hvordan får jeg det til at virke??
Avatar billede aske2 Nybegynder
08. november 2002 - 16:39 #1
Det skal være REFERENCES
Avatar billede mjl Nybegynder
08. november 2002 - 16:40 #2
he he
Avatar billede aske2 Nybegynder
08. november 2002 - 16:44 #3
mjl>> Hej
Noget har jeg da lært efterhånden - selv om det går laaangsomt. Det er første gang, at jeg er den første til at svare på et spørgsmål!
Avatar billede cridonori Nybegynder
08. november 2002 - 16:45 #4
akse: tillykke *GG*
Avatar billede flse Nybegynder
08. november 2002 - 16:46 #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 :-)
Avatar billede cridonori Nybegynder
08. november 2002 - 16:48 #6
INNODB ??? hvad står det for?
Avatar billede aske2 Nybegynder
08. november 2002 - 16:50 #7
cridonori>> Jeg takker for point og tillykke. Jeg er MEGET stolt ;o)
Avatar billede mjl Nybegynder
08. november 2002 - 16:56 #8
He he - bliv i solen lidt - god fornemmelse ikk'?
Avatar billede aske2 Nybegynder
08. november 2002 - 16:57 #9
mjl>>
Jo det er rigtig godt - nu mangler jeg bare, at der er nogen, der svarer på mit spørgsmål, så jeg kan komme videre.
Avatar billede mjl Nybegynder
08. november 2002 - 16:57 #10
aske2> Måske kan 'flse' hjælpe dig med dit MySQL problem...
Avatar billede aske2 Nybegynder
08. november 2002 - 16:57 #11
cridonori>>
Jeg har ingen anelse om, hvad InnoDB står for - har selv spekuleret på det, men har ikke lige kunne finde det nogen steder.
Avatar billede mjl Nybegynder
08. november 2002 - 17:00 #12
Avatar billede flse Nybegynder
08. november 2002 - 17:08 #13
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.
Avatar billede flse Nybegynder
08. november 2002 - 17:09 #14
Avatar billede aske2 Nybegynder
08. november 2002 - 17:11 #15
flse>>
Det virker som om du har rimelig godt styr på det. Kan du ikke hjælpe mig med mit problem? http://www.eksperten.dk/spm/280979
Avatar billede aske2 Nybegynder
08. november 2002 - 17:13 #16
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)
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