Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> kasowanie wszystkich danych z tabel
Apo
post
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Witam
Mam kilka pytan (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

1. Czy jest jakiś sposób aby wykasować wszystkie rekordy z danej tabeli, nie używając np:
  1. DELETE FROM dane WHERE id BETWEEN 0 AND 10000
? Zależy mi na szybkości.

2. Czy jest możliwośc usunięcia wszystkich danych z kilku tabel naraz w 1 zapytaniu ?

Pozdrawiam
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


TRUNCATE TABLE

http://dev.mysql.com/doc/refman/5.0/en/truncate.html

ale zauwaz roznice miedzy DELETE FROM ..
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Na oba pytania odpowiedź tu:
http://dev.mysql.com/doc/refman/5.0/en/delete.html
Go to the top of the page
+Quote Post
Apo
post
Post #4





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


Dzięki za linki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Mam jeszcze pytanie czy dobrze robie transakcje :?

  1. <?php
  2. db::query('START TRANSACTION');
  3.  if(!db::query('TRUNCATE TABLE newsy'))
  4.  db::query('ROLLBACK');
  5.  else
  6.  db::query('COMMIT');
  7. ?>


Transakcji jeszcze niegdy nie robiłem, a w manualu dają jakieś @A :? :
  1. START TRANSACTION;
  2. SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
  3. UPDATE table2 SET summary=@A WHERE type=1;
  4. COMMIT;


Byłbym wdzięczny za wytłumaczenie

Ten post edytował Apo 26.05.2006, 12:17:28
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




skladniowo robis dobrze. logiczne - nie koniecznie. nie ma sensu robic transakcji dla jednego zapytania.

co do @A to nie ma to nic wspolnego z transakcją. Uzyli oni akurat takich zapytan z wykorzystaniem zmiennych w zapytaniu. rownie dobrze mogly tam byc zwykle zapytania
Go to the top of the page
+Quote Post
Apo
post
Post #6





Grupa: Zarejestrowani
Postów: 426
Pomógł: 1
Dołączył: 2.10.2005

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


hmm no fakt głupi przykład dałem, ale np jak zrobie takie coś:

  1. <?php
  2. db::query('START TRANSACTION');
  3.  if(!db::query('TRUNCATE TABLE newsy'))
  4.  db::query('ROLLBACK');
  5.  
  6.  if(!db::query('TRUNCATE TABLE komenty'))
  7.  db::query('ROLLBACK');
  8.  
  9.  if(!db::query('TRUNCATE TABLE arty'))
  10.  db::query('ROLLBACK');
  11.  
  12.  db::query('COMMIT');
  13. ?>


No i teraz pytanie czy dobrze robie nie używając else, bo niewiem co sie stanie jeśli np jeden warunek bedzie false, wtedy wykona się ROLLBACK ale na samym końcu jest jeszcze samotne COMMIT co w takich wypadkach zrobic?

Pozdro
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: 24.08.2025 - 04:18