![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 17.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Problem z usunięciem rekordów.
Usuwam z db pracodawcę o określonym numerze NIP zapytaniem [sql:1:54eb29c322]delete from pracodawcy where nip=$nip;[/sql:1:54eb29c322] i jednocześnie chce usunąć z tabeli oferty wszystkie oferty przyporządkowane do tego pracodawcy. Chciałem połączyć te 2 zapytania (lub wymusić więzy integralności zmieniając typ kolumny na InnoDB i próbując określić związek Constraints w MySQL-Front v 3.0 – ale wywalało mi ciągle błąd). Wracając do tematu bo chyba co nieco się od niego oddaliłem. Poszedłem na łatwiznę i wykonałem 2 oddzielne zapytania usuwające odpowiednie wpisy, ale…, został mi jeszcze jeden problem mam 2 tabele w których przechowuję dane związane z tabelą oferty (mianowicie województwa_ofert i jezyki-ofert jako klucze obce w tych tabelach jest id_oferty). Problem w tym że nie wiem jak usunąć wpisy z tych tabel dla każdej usuwanej razem z pracobiorcą oferty. Musze nadmienić że wszystko odbywa się z poziomu php. Z góry dzięki za pomoc. -------------------- Tomuś
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Jeśłi nie mozesz skorzystać z powiazań na poziomie bazy danych, to nie pozostaje ci nic innego, niż to, by przed usunięciem odpowiednich ofert, pobrać wszstkie pasujące id_ofert, a następnie, z kolejnych tabel usuwać rekordy w oparciu o zapytanie typu:
[sql:1:a75a224e60] DELETE FROM tabela WHERE id_oferty IN ( '1', '2', '3', kolejne id oferty... )[/sql:1:a75a224e60] -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 17.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Tego się obawiałem, ale miałem nadzieję że jest jakiś inny bardziej elegancki sposób.
-------------------- Tomuś
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat mam 2 tabele w których przechowuję dane związane z tabelą oferty (mianowicie województwa_ofert i jezyki-ofert jako klucze obce w tych tabelach jest id_oferty). Problem w tym że nie wiem jak usunąć wpisy z tych tabel dla każdej usuwanej razem z pracobiorcą oferty. Musze nadmienić że wszystko odbywa się z poziomu php. Z góry dzięki za pomoc.
jesli dobrze zrozumialem mysle ze to by moglo poskutkowac (ostroznie z tym... hehe) - dziala od mysql 4.0.2 wzwyż... [sql:1:409f1f9782] DELETE wojew FROM wojew,oferty,pracobiorcy WHERE oferty.id_oferty=wojew.id_oferty AND oferty.id_pracobiorcy=pracobiorcy.id_pracobiorcy AND pracobiorcy.nip='$nip'; [/sql:1:409f1f9782] (to samo dal jezykow...) albo [sql:1:409f1f9782] DELETE FROM wojew USING wojew,oferty,pracobiorcy WHERE oferty.id_oferty=wojew.id_oferty AND oferty.id_pracobiorcy=pracobiorcy.id_pracobiorcy AND pracobiorcy.nip='$nip';[/sql:1:409f1f9782] musisz to wykonac zanim skasujesz pracodawcow -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:41 |