Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Transakcje i blokowanie, usuwanie danych
-Code46-
post
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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


  1. CREATE TABLE `bb` (
  2. `a` int( 11 ) NOT NULL AUTO_INCREMENT ,
  3. `b` int( 11 ) NOT NULL,
  4. PRIMARY KEY ( `a` ),
  5. KEY `b` ( `b` ) ,
  6. CONSTRAINT `bb_ibfk` FOREIGN KEY ( `b` ) REFERENCES `aa` ( `a` ) ) TYPE = InnoDB


Cytat
A tak apropo po co ten INDEX? PRzecież index służy do przyspieszania wyszukiwania.. Ale raczej nie jest niezbędny..?

No wlasnie musi to byc.

Cytat
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.

Jesli zapytanie zwroci blad cofiesz transakcje i pokazujesz ladny blad userowi.

Cytat
Swoją drogą to na tabelach MyISAM też da się ładnie obejść problem niespójnośći

Zawsze sie da (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Kwestia tylko jak to zaimplementujesz.
Go to the top of the page
+Quote Post

Posty w temacie
- 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
- - Code46   CytatDla konta_id z tabeli dane tworzysz index, na...   18.04.2005, 22:34:19
- - 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


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: 18.10.2025 - 13:14