Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z usuwaniem kaskadowym
Forum PHP.pl > Forum > Bazy danych > MySQL
__rafal__
Witajcie!
Stworzyłem w mysql'u dwie tabele
Cytat
create table pytania
(
  id_pytania int unsigned not null auto_increment,
  pytanie text not null,
  primary key (id_pytania)
);

Cytat
create unique index id_pytania on pytania (id_pytania);

Cytat
create table odpowiedzi
(
  id_odpowiedzi  int unsigned not null auto_increment,
  nr_pytania int unsigned not null,
  odpowiedz text not null,
  primary key (id_odpowiedzi),
  foreign key (nr_pytania)  references  pytania (id_pytania)
  on update cascade on delete cascade
);

Cytat
create unique index id_odpowiedzi on odpowiedzi (id_odpowiedzi);
create index nr_pytania on odpowiedzi (nr_pytania);


Dlaczego polecenie:
Cytat
delete from pytania where id_pytania=jakaś_liczba

nie usunie również wiersz o polu nr_pytania=jakaś_liczba a jedynie wiersz z tabeli pytania (skoro ustawione jest on delete cascade)?
Z góry dzięki za podpowiedź!
anas
Hej.

Nie zdefiniowales typu tabeli na InnoDB - a to z tego co pamietam jedyny typ w MySQL, ktory obsluguje dobrze klucze obce rowniez takie rzeczy jak on delete...

domyslnie MySQL zaklada tabele jako typ MyISAM - chyba ze przy instalacji wymusiles inny typ.

pozdrowka

anas
__rafal__
Wielkie dzięki!! Spróbuję teraz z InnoDB.
Pozdrówka!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.