Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kasowanie wszystkich danych z tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
Apo
Witam
Mam kilka pytan 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
dr_bonzo
TRUNCATE TABLE

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

ale zauwaz roznice miedzy DELETE FROM ..
nospor
Na oba pytania odpowiedź tu:
http://dev.mysql.com/doc/refman/5.0/en/delete.html
Apo
Dzięki za linki 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
nospor
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
Apo
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.