• 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
440 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,790 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ź 356 wizyt
+1 głos
1 odpowiedź 343 wizyt
pytanie zadane 1 lutego 2022 w SQL, bazy danych przez KonDZIKs Bywalec (2,770 p.)
0 głosów
2 odpowiedzi 34,825 wizyt
pytanie zadane 26 sierpnia 2017 w SQL, bazy danych przez Radek Begej Użytkownik (580 p.)

92,843 zapytań

141,782 odpowiedzi

320,858 komentarzy

62,174 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...