Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> DELETE z INNER - bezpieczeństwo drugiej tabeli
-lukasamd-
post
Post #1





Goście







Witam,
mam pewnie dosyć proste pytanie, bo wyczytałem że wszystko jest ok, testy potwierdzają, ale chcę mieć 100% pewności.
Chciałbym wykonać DELETE, jednak muszę dodatkowo użyć JOIN bo od drugiej tabeli zależy co będzie usuwane.

Przykład:
Kod
DELETE t1.* FROM tabela1 AS t1
INNER JOIN tabela2 AS t2 ON t1.poleX = t2.poleX
WHERE t1.poleY = 300 AND t2.poleZ IN (1,2,3,4,5)


poleX i poleY występują w obu tabelach, nazywają się tak samo.
Dane mają być usuwane tylko i wyłącznie z tabeli1, jednak w złączeniu z tabelą2 liczy się właśnie poleZ, gdzie jest zestaw w IN.

Sprawdzałem, wydaje się że wszystko gra, dane w tabela2 są nienaruszone, ale jak pisałem, chcę być w pełni pewny - czy takie coś nie zagraża danym z tabeli2?
Jak rozumiem, do usunięcia idzie tylko to co dokładnie podane (w moim wypadku t1.*), zaś złączenie nie ma tu znaczenia - jest wykorzystwane przy wyszukiwaniu danych do usunięcia, ale nie udziela się w samym usuwaniu.

Dobrze myślę, czy wymaga to korekty?
Go to the top of the page
+Quote Post
viking
post
Post #2





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Dobrze myślisz. O ile nie ma tam żadnych kluczy obcych, triggerów będzie Ci kasować tylko to co pokazałeś. Dla pewności przy testowaniu możesz to zawsze zamienić na select albo objąć blokiem transakcyjnym do rollbacka.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.12.2025 - 15:10