webForumDet fria alternativet

Foreign key problem

Databaser & SQL

2 svar · 467 visningar · startad av Sabotnick

Medlem sedan feb. 200377 inlägg
Frågan#1

Jag har följande tabeller:

CREATE TABLE `bc_text` (
  `Text_ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
Massa annat här
  PRIMARY KEY (`Text_ID`)
) ENGINE=InnoDB;

CREATE TABLE `bc_point` (
  `Point_ID` int(4) NOT NULL AUTO_INCREMENT,
Massa annat här
  PRIMARY KEY (`Point_ID`)
) ENGINE=InnoDB;

CREATE TABLE bc_point_text (
  Point_ID int(4) NOT NULL,
  Text_ID int(10) NOT NULL,
  Point_length datetime NOT NULL,
  PRIMARY KEY (Point_ID,Text_ID)
) ENGINE=InnoDB;

Nu vill jag skapa foreign key i den sista tabellen och där kör jag följande:

ALTER TABLE bc_point_text
  ADD FOREIGN KEY (Point_ID) REFERENCES bc_point (Point_ID) ON DELETE CASCADE;
ALTER TABLE bc_point_text
  ADD FOREIGN KEY (Text_ID) REFERENCES bc_text (Text_ID) ON DELETE CASCADE;

Den första kör igenom men inte den andra. Varför kan någon förklara det för mig. Känner lite att jag inte har fattat det här med foreign key. Kör MySQL som databas.

Tusen tack för all hjälp!

Medlem sedan aug. 20039 340 inlägg
#2

Det beror på att de två Text_ID är av olika typ, dvs att den ena är unsigned.

Medlem sedan feb. 200377 inlägg
#3

Aha. där ser man :) Tack så mycket!

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)