| -Code46- |
Post
#1
|
|
Goście |
Witam!
Wkońcu natrafiłem na problem dotyczący kasowania danych z bazy mysql. Temat dotyczy bardziej bazy niż php ale mam nadzieję, że mi pomożecie.. Mam kilka tabel. Kasując informacje z jednej, muszę usunąć odpowiednie dane z innych tabeli. Wiem, że instrukcji DELETE nie można użyć tak jak select. Dla każdej tabeli należy wywołać osobno instukcję DELETE. Poczytałem sobi o trancakcjach i blokowaniu ale nie wiem jak to zastosować w praktyce. Chodzi mi o to, że gdy skasuję z tablei kont użytkownika, a z drugiej tabeli (tam gdzie mam dane o użytkownikach) nie uda się skaować odpowiedniego wpisu (np z nieznanych przyczyn) to tabelę z kontami doprowadzę do stanu z przed wykonani instrukcji DELETE, po to aby baza się nie posypała. Jak to zrobić? |
|
|
|
![]() |
| -Code46- |
Post
#2
|
|
Goście |
Cytat Dla konta_id z tabeli dane tworzysz index, nastepnie ustawiasz mu powiazanie. Np w phpMyAdminie jest to widok relacyjny i wybierasz tam wskazanie z klucza obcego do klucza podstawowego, czyli jaki klucz podstawowy ma byc kluczem obcym w tabeli dane. Nie używam phpmyadmina do takich rzeczy. Wolę z palca - nauczę się. Czy takie coś będzie poprawne?
(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) A tak apropo po co ten INDEX? PRzecież index służy do przyspieszania wyszukiwania.. Ale raczej nie jest niezbędny..? Cytat To sie zdarza, opisane jest w jaki sposob dochodzi do tego. Jak mozesz podaj autorow i nazwe ksiazeczki chetnie zapoznam sie z tym tematem. "Bazy danych i MySQL - od podstaw" Richard Stones i Neil Matthew (strona 272-277) To jest dokładnie ta Cytat Odnosnie blokowanie i transakcji, mysle ze wystarcza tylko transakcje, jesli robisz dobra obsluge wszystkich zwracanych bledow i baza jest dobrze zaprojektowana to nie dojdzie do sytuacji jak zakleszczenie. Mógłbyś podać przykład obsługi takiego błędu? Czy robić w pętle? Np próbuj usunąć podany wiersz dopóki się nie uda.. Cytat Tak sobie mysle ze to moga byc 2 startujace transakcje blokujace 2 rekordy a nastepnie nawzajem przez siebie zablokowanych rekordow uzywaja i transakcje poprostu wisza. Tak mi się też wydaje. Tylko troszkę namieszali i nie wiedziałem czy stosując transakcje należy stosować blokadę. Swoją drogą to na tabelach MyISAM też da się ładnie obejść problem niespójnośći
|
|
|
|
Code46 Transakcje i blokowanie 17.04.2005, 14:48:57
SongoQ Mozna to zrealizowac na 2 sposoby.
1. Tabela typu... 17.04.2005, 15:12:27
Guest Cytat(SongoQ @ 2005-04-17 14:12:27)Mozna to z... 17.04.2005, 19:30:31
Code46 Cytat(SongoQ @ 2005-04-17 14:12:27)Mozna to z... 17.04.2005, 23:11:05
SongoQ CytatCo to jest ta tabela typu INNO DB? I kiedy st... 18.04.2005, 04:32:20
Code46 Cytat(SongoQ @ 2005-04-18 03:32:20)Podam moze... 18.04.2005, 09:31:41
SongoQ CytatW tabelach które podałeś zamiast Kla_Use_id p... 18.04.2005, 09:54:26
Guest No dobra ale jak to zrobić, żę usuwając jeden wpis... 18.04.2005, 13:13:42
matid Cytat(Guest @ 2005-04-18 14:13:42)No dobra al... 18.04.2005, 13:50:38
SongoQ Nie wystarczy ze zrobisz:
[SQL] pobierz, plaintex... 18.04.2005, 14:37:59
Code46 PYTANIE 1
Hmm.. Chyba źle to robiłem. Najpierw nap... 18.04.2005, 19:34:00
SongoQ CytatAle dlaczego tak się dzieje? Czy może to byc ... 18.04.2005, 20:02:49
Code46 CytatWsumie sam sobie odpowiedziales, dlatego sie ... 18.04.2005, 20:31:31
SongoQ CytatJak dokładnie (np na przykładzie mojej tabeli... 18.04.2005, 21:08:10
SongoQ [SQL] pobierz, plaintext CREATE TABLE `bb` (`a... 19.04.2005, 00:14:32
Code46 Ok ostatnie pytanie. Zrobiłem dwie tabele:
[SQL] p... 19.04.2005, 11:13:32
SongoQ CytatAle z tego co pisałeś wcześniej, odpowiedni w... 19.04.2005, 14:46:56
Code46 CytatAle typ powiazania ma byc CASCADE czyli.
[SQ... 19.04.2005, 16:41:58
Code46 Działa
Ostatnie pytanie. Uruchamiam transakcje k... 19.04.2005, 18:46:56
SongoQ CytatMoim zdaniem to jest trochę tak od "pupy... 20.04.2005, 00:29:34
MiGoo Proste pytanka:
1. czy polecenie "FOR UPDAT... 6.07.2006, 14:10:09
KG- ad. 1) Nie, zostanie zignorowane. Blokowanie wiers... 6.08.2006, 21:54:04 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 18:43 |