• 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

VPS Starter Arubacloud
0 głosów
390 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 (287,550 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ź 293 wizyt
+1 głos
1 odpowiedź 308 wizyt
pytanie zadane 1 lutego 2022 w SQL, bazy danych przez KonDZIKs Bywalec (2,770 p.)
0 głosów
2 odpowiedzi 33,827 wizyt
pytanie zadane 26 sierpnia 2017 w SQL, bazy danych przez Radek Begej Użytkownik (580 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...