webForumDet fria alternativet

Cascade delete och uppdate fungerar inte

4 svar · 296 visningar · startad av Compusa

CompusaMedlem sedan jan. 20023 327 inlägg
#1

Har en tabell som heter projekt där primärnyckeln heter projID. Tabellen objekt_ingar använder projID som foreign key för att se vilka objekt som ingår i projektet. Koden fungerar utmärkt att köra i mySQL control center dock med ett större problem. När jag ändrar projID i tabellen project så ändras inte projID nyckeln i tabellen objekt_ingar. Varför?

Har följande två tabeller:

PROJEKT

CREATE TABLE PROJECT(
  projID MEDIUMINT PRIMARY KEY AUTO_INCREMENT,
  projNamn CHAR(50)

);

OBJEKT_INGAR

CREATE TABLE OBJECT_INGAR(
  objNamn CHAR(50) ,
  projID MEDIUMINT,
  FOREIGN KEY (projID) REFERENCES PROJECT(projID)
  ON DELETE CASCADE
  ON UPDATE CASCADE,
  objKopior SMALLINT,
  objNyOm BOOLEAN DEFAULT 1,
  objTnamn CHAR(50),
  PRIMARY KEY(objNamn, projID)
);
LarsGMedlem sedan dec. 200012 464 inlägg
#2

Du måste använda INNODB som tabelltyp.

CompusaMedlem sedan jan. 20023 327 inlägg
#3

Det fungerar ändå inte.. Är det något i min syntax som ser felaktigt ut? Mycket tacksam för svar.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Det måste finnas index på de kolumner som ingår i nycklarna.

CompusaMedlem sedan jan. 20023 327 inlägg
#5

Det löste sig när jag skapade om tabellerna på nytt med INNODB som tabell-format. Stor tack för hjälpen.

122 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
119 ms — hämta tråd, inlägg och bilagor (db)