• 31-08-2022, 10:45:12
    #1
    TRUNCATE TABLE " tablo adı" ile evet tabloyu boşaltıyorum lakin SQL de 100 den fazla farklı veritabanı var
    SQL sorguda toplu bir şekilde bütün veritabanlarında ki TRUNCATE TABLE " tablo adı" nasıl boşaltabilir kodu yazarsanız mutlu olurum.


    bütün veritabanlarindaki TABLO ADI tablosu bosaltilacak.
    Birden fazla var lakin.

    TRUNCATE TABLE "TABLO ADI" bu sql sorguda seçili tabloyu boşaltıyor evet sorun yok lakin benim istediğim toplu şekilde bütün veritabanlarında "TABLO ADI" nı bulup boşaltma işlemi yapsın,
    Yani kısacas;
    1- Bütün veri tabanlarına tek tek arama yapsın istenilen tabloyu bulsun
    2- İstenilen tabloyu bulsun
    3- İstenilen tabloyu boşaltsın

    Teşekkür ederim.
  • 31-08-2022, 10:47:09
    #2
    En iyi yol, Navicat ile bağlanıp; CTRL+A yapıp tabloların olduğu yerde sonra sağ tıklayıp TRUNCATE TABLE yapmak.
  • 31-08-2022, 11:24:02
    #3
    mysql -Nse 'show tables' DATABASE_NAME | while read table; do mysql -e "truncate table $table" DATABASE_NAME; done
    DATABASE_NAME 'lerin yerine kendi veritabanı adını yazarak bu komut ile bütün tabloları boşaltabilirsin
  • 31-08-2022, 11:30:39
    #4
    bütün veritabanlarindaki TABLO ADI tablosu bosaltilacak.
    Birden fazla var lakin.

    TRUNCATE TABLE "TABLO ADI" bu sql sorguda seçili tabloyu boşaltıyor evet sorun yok lakin benim istediğim toplu şekilde bütün veritabanlarında "TABLO ADI" nı bulup boşaltma işlemi yapsın,
    Yani kısacas;
    1- Bütün veri tabanlarına tek tek arama yapsın istenilen tabloyu bulsun
    2- İstenilen tabloyu bulsun
    3- İstenilen tabloyu boşaltsın
    @salihbey24;
  • 31-08-2022, 11:53:04
    #5
    information_schema yı kullanarak tüm veritabanlarını çekip döngü ile yapmayı deneyin.

    <?php 
    $pdo = new PDO('mysql:dbname=information_schema;host=127.0.0.1','user','pass');
    $dbs = $pdo->query("SELECT SCHEMA_NAME FROM SCHEMATA")->fetchAll(\PDO::FETCH_OBJ);
    $system_dbs = ['mysql', 'information_schema', 'performance_schema', 'sys'];
    foreach($dbs as $db) {
        if(in_array($db->SCHEMA_NAME, $system_dbs))
            continue;
        $pdo->exec("USE " . $db->SCHEMA_NAME);
        $pdo->exec("TRUNCATE TABLE tablo_adi");
    }