Problem med foreign keys
Hej eksperter.Jeg har problemer med foreign keys i mySQL.
Jeg kan ikke gennemskue hvad det er der ikke fungere, eller ikke er korrekt opsat på min maskine.
Jeg har to tables hvor 'child' har en foreign key til 'parent'. Oprettelsen ser tilsyneladende ud til at fungere.
Her er et dump af de to tables:
# phpMyAdmin MySQL-Dump
# version 2.3.3pl1
# http://www.phpmyadmin.net/ (download page)
#
# Vært: 127.0.0.1:3306
# Genereringstidspunkt: 18/08 2003 kl. 09:03:38
# Server version: 4.00.12
# PHP version: 4.3.2
# Database: : `freeriders_dk_db`
# --------------------------------------------------------
#
# Struktur dump for tabellen `child`
#
CREATE TABLE child (
username varchar(20) NOT NULL default '',
skole text NOT NULL,
KEY username (username),
FOREIGN KEY (`username`) REFERENCES `parent` (`username`) ON DELETE CASCADE
) TYPE=InnoDB;
# --------------------------------------------------------
#
# Struktur dump for tabellen `parent`
#
CREATE TABLE parent (
username varchar(20) NOT NULL default '',
beskrivelse text NOT NULL,
PRIMARY KEY (username)
) TYPE=InnoDB;
Jeg bruger EMS mySQL Manager, og der burde man kunne ændre i foreign keys, slette o.lign. men så snart foreign key er oprettet mellem disse to tables kan jeg ikke ændre i dem mere.
Jeg prøver denne query for at slette foreign keyen igen:
ALTER TABLE child DROP FOREIGN KEY
Men jeg får denne fejl:
Can't create table '.\freeriders_dk_db\#sql-70c_20.frm' (errno: 150)
Jeg har også søgt på google efter at se om nogen kunne hjælpe mig.
Jeg fandt nogen der sagde noget med at tmpdir skulle være sat i my.ini, derfor addede jeg denne linje:
[mysqld]
tmpdir=C:/temp
Men det har hellere ikke hjulpet.
Jeg kører mySQL 4.0.12
Det skal lige siges at det ikke kun er disse to tables det ikke fungere med, det er lige meget hvilken table det er, så virker det ikke korrekt.