webForumDet fria alternativet
Logga in / Bli medlem

Cascade delete och uppdate fungerar inte

Databaser & SQL

4 svar · 296 visningar · startad av Compusa

Medlem sedan jan. 20023 327 inlägg
Trådstart#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)
);
Medlem sedan dec. 200012 464 inlägg
#2

Du måste använda INNODB som tabelltyp.

Medlem 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.

Medlem sedan dec. 200012 464 inlägg
#4

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

Medlem 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.

275 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
139 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)