За последние 24 часа нас посетили 17054 программиста и 1834 робота. Сейчас ищут 1630 программистов ...

Как очистить конкретную базу MySQL от всех таблиц?

Тема в разделе "PHP для новичков", создана пользователем Интуит, 21 июл 2011.

  1. Интуит

    Интуит Активный пользователь

    С нами с:
    22 окт 2010
    Сообщения:
    50
    Симпатии:
    0
    Адрес:
    Из Волжского
    Здравствуйте! Мне надо такой скрипт сделать, который очищал бы ту или иную базу данных одним махом от всех присутствующих там таблиц. Ну чтобы база была как новая, после создания. Как это сделать?
     
  2. Mamont

    Mamont Активный пользователь

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    [sql]DROP DATABASE `db_name`;
    CREATE DATABASE `db_name`;[/sql]
     
  3. Интуит

    Интуит Активный пользователь

    С нами с:
    22 окт 2010
    Сообщения:
    50
    Симпатии:
    0
    Адрес:
    Из Волжского
    Спасибо!
     
  4. Jettt

    Jettt Активный пользователь

    С нами с:
    24 июл 2011
    Сообщения:
    20
    Симпатии:
    0
    Не забывайте, что дефолтные кодировки и сопоставления в мускле далеко не всегда те, которые нужны.
    [sql]
    DROP DATABASE `db_name`;
    CREATE DATABASE `db_name` CHARACTER SET 'utf8' COLLATE `utf8_general_ci`;
    [/sql]
    ИМХО так надёжнее.

    А вот так более универсально (конечно сильно утрирую, нет проверок на ошибки и т.п.)
    PHP:
    1.  
    2. <?php
    3. $db_name = 'db_name';
    4. $res = mysql_query("
    5.    SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
    6.    FROM INFORMATION_SCHEMA.SCHEMATA
    7.    WHERE SCHEMA_NAME = '{$db_name}'
    8. ");
    9. list ($charset, $collation) = mysql_fetch_row($res);
    10. mysql_unbuffered_query("DROP DATABASE `{$db_name}`");
    11. mysql_unbuffered_query("CREATE DATABASE `{$db_name}` CHARACTER SET '{$charset}' COLLATE `$collation`");
    12. ?>
    13.  
    Для постгри чуть другие запросы, но суть та же.