Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

praznjenje cele baze

[es] :: MySQL :: praznjenje cele baze

[ Pregleda: 2406 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SteleStudent

Član broj: 119868
Poruke: 50
94.189.244.*



Profil

icon praznjenje cele baze08.12.2008. u 00:18 - pre 187 meseci
Dakle interesuje me da li postoji SQL naredba da se isprazni kompletna baza(znaci Empty ne Drop :D)?
Poenta je, znam da ima u PhpMyAdmin-u ova opcija, ali mene interesuje preko SQL naredbe u svrhu testiranja aplikacije na kojoj radim. Kada mi puknu neki testovi baza ostane zaprljana. Inace bilo bi zgodno ako neko moze da mi da primer HSQL naredbe jer koristim Hibernate, znacilo bi mi :D
Pozz i Hvala unapred
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.xdsl.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: praznjenje cele baze08.12.2008. u 00:33 - pre 187 meseci
http://dev.mysql.com/doc/refman/5.0/en/truncate.html

Citat:

TRUNCATE [TABLE] tbl_name

TRUNCATE TABLE empties a table completely. Logically, this is equivalent to a DELETE statement that deletes all rows, but there are practical differences under some circumstances.

 
Odgovor na temu

SteleStudent

Član broj: 119868
Poruke: 50
94.189.244.*



Profil

icon Re: praznjenje cele baze08.12.2008. u 00:41 - pre 187 meseci
hvala!
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.xdsl.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: praznjenje cele baze08.12.2008. u 00:51 - pre 187 meseci
izvini, poslah ti za tabelu ne za bazu ...

ne postoji sql koji ce da dropne sve tabele u jednoj bazi :(

mozes da radis nesto poput "drop table if exist t1,t2,t3..." ili iz shell-a nesto poput:
Code:

mysql -u uname dbname -e "show tables" | grep -v Tables_in | grep -v "+" | gawk '{print "drop table " $1 ";"}' | mysql -u uname dbname


ako trosis 5.1 onda mozes da dobijes spisak tabela sa:
Code:

SELECT GROUP_CONCAT(TABLE_NAME) from information_schema.TABLES WHERE TABLE_SCHEMA = 'imetabele';


ali mislim da ne mozes da prosledis taj info direkt "DROP TABLE" statementu, (drop table (select ...)) ne radi koliko se ja secam ali iz bilo kog "high level" jezika mozes da pokupis tim select-om spisak tabela pa da izgenerises "drop table if exist ".$row[0] ili kakav vec klijent trosis i onda izvrsis taj upit...

phpmyadmin radi nesto poput onog shell skripta, pokupi tabele api funkcijom i onda brise jednu po jednu u foreach petlji.





 
Odgovor na temu

IvanPHP
Ivan Pantic

Član broj: 149293
Poruke: 45
91.148.94.*



+1 Profil

icon Re: praznjenje cele baze18.12.2008. u 23:43 - pre 187 meseci
@bogdan.kecman

Ma kakvi high level jezici, shell skripte. Dovoljan je jedan malecni kursor ;)


Code:

DELIMITER $$
CREATE PROCEDURE Truncate_Dbase()
BEGIN
DECLARE gotovo BOOL DEFAULT FALSE;
DECLARE truncate_dbase VARCHAR(512);
DECLARE truncate_kursor
 CURSOR FOR
  SELECT CONCAT('TRUNCATE TABLE ',table_name)
  FROM INFORMATION_SCHEMA.TABLES
  WHERE TABLE_SCHEMA = DATABASE(); /* AND TABLE_NAME LIKE 'prefiks_%';*/
DECLARE
  CONTINUE HANDLER FOR
  SQLSTATE '02000'
   SET gotovo = TRUE;

OPEN truncate_kursor;

truncate_petlja: LOOP
 FETCH truncate_kursor INTO truncate_dbase;
 SET @truncate_dbase = truncate_dbase;

 IF gotovo THEN
  CLOSE truncate_kursor;
  LEAVE truncate_petlja;
 END IF;


 PREPARE truncate_dbase_stmt FROM @truncate_dbase;
 EXECUTE truncate_dbase_stmt;

END LOOP;
END$$

DELIMITER ;
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.xdsl.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: praznjenje cele baze18.12.2008. u 23:59 - pre 187 meseci
odlicna SP :)
 
Odgovor na temu

IvanPHP
Ivan Pantic

Član broj: 149293
Poruke: 45
91.148.94.*



+1 Profil

icon Re: praznjenje cele baze19.12.2008. u 00:08 - pre 187 meseci
@bogdan.kecman

Ej, izvini stvarno ako sam te malko potkacio, al racunam ukucace neko u pretragu pa nek i ES bude malko elitni xe,xe!
 
Odgovor na temu

[es] :: MySQL :: praznjenje cele baze

[ Pregleda: 2406 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.