• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Laravel Naruszenie integralności klucza obcego

Object Storage Arubacloud
0 głosów
422 wizyt
pytanie zadane 16 grudnia 2020 w PHP przez Grzegorz Mikina Dyskutant (8,060 p.)

Witam mam taki problem:
Stworzyłem m.in dwie takie tabele Użytkownicy i wyzyty, klucze obce są stworzone itd
Jeżeli użytkownik ma zaplanowaną wizytę, nie mogę go usunąć. Gdy użytkownik nie ma zaplanowanej wizyty mogę go usunąć.

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`system`.`visits`, CONSTRAINT `visits_doctor_id_foreign` FOREIGN KEY (`doctor_id`) REFERENCES `users` (`id`)) (SQL: delete from `users` where `id` = 10)


 

1 odpowiedź

0 głosów
odpowiedź 16 grudnia 2020 przez Arkadiusz Waluk Ekspert (288,330 p.)
To nie problem, to właściwe zachowanie bazy danych. Skoro są jakieś powiązania, czyli użytkownik ma wizyty, to domyślnie nie można go usunąć.

Musisz najpierw usunąć wszystkie powiązania z użytkownikiem (w tym przypadku wizyty) i dopiero go usunąć lub zmienić relację dodając co ma się stać z relacją podczas usuwania (ON DELETE), np. że w momencie usuwania użytkownika mają zostać usunięte także jego wizyty (opcja CASCADE) albo że ma zostać wstawiony null zamiast jego id przy wizycie (opcja SET NULL). Wszystko zależy co chcesz uzyskać.

Szczegóły: https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html W Laravelu można to określić metodą metodą ->onDelete() na definicji relacji w migracji.

Podobne pytania

+1 głos
1 odpowiedź 330 wizyt
+1 głos
1 odpowiedź 334 wizyt
pytanie zadane 1 lutego 2022 w SQL, bazy danych przez KonDZIKs Bywalec (2,770 p.)
0 głosów
2 odpowiedzi 34,679 wizyt
pytanie zadane 26 sierpnia 2017 w SQL, bazy danych przez Radek Begej Użytkownik (580 p.)

92,757 zapytań

141,679 odpowiedzi

320,429 komentarzy

62,101 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...