Удалить все записи, существующие во всей таблице - PullRequest
0 голосов
/ 20 октября 2010

Как сделать запрос в SQL для удаления всех записей, существующих в каждой таблице.

Можно написать каждую таблицу имен, используя команду delete.Но для написания каждой таблицы имен потребуется много времени.

Я уже пробовал DELETE FROM * в MySQL, но он получил ошибку:

В синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с '*' в строке 1

Ответы [ 6 ]

1 голос
/ 20 октября 2010

Пожалуйста, используйте это

<?php
mysql_connect('localhost', 'user', 'password');
$dbName = "database";
mysql_select_db($dbName)
$result_t = mysql_query("SHOW TABLES");
while($row = mysql_fetch_assoc($result_t))
{
   mysql_query("TRUNCATE " . $row['Tables_in_' . $dbName]);
}
?>

Всего наилучшего

1 голос
/ 20 октября 2010

Вам просто нужно выполнить запрос TRUNCATE для каждой таблицы. Вы также можете использовать delete, но truncate обычно больше подходит для того, что вы делаете.

TRUNCATE TABLE table1;
TRUNCATE TABLE table2;
TRUNCATE TABLE table2;

Нет * или всех селекторов таблиц.

0 голосов
/ 20 октября 2010

Если вы хотите автоматизировать это, вы должны написать некоторый код, внешний по отношению к MySQL.Используйте show tables, чтобы получить имена таблиц, а затем вызовите TRUNCATE для каждого из них.

0 голосов
/ 20 октября 2010
Можно использовать

оператор DELETE.

После удаления будут удалены все строки, но индексы (например, автоинкременты) не будут сброшены.

УДАЛИТЬ * ИЗ ТАБЛЕКСА

После удалит все строки и индексы будут сброшены

TRUNCATE TABLEX

0 голосов
/ 20 октября 2010

Вы можете использовать INFORMATION_SCHEMA , чтобы перебрать все таблицы и динамически выполнить оператор DELETE или TRUNCATE.

0 голосов
/ 20 октября 2010

Я считаю, что MySql имеет следующий SQL-оператор:

Show tables

Создайте свой командный объект с Show tables в качестве текста команды и выполните.

Используя этот оператор, вы можете выполнитьзапрос и заполнить MySqlDataReader.Выполните итерацию читателя и поместите имена таблиц в отформатированную строку следующим образом.

// create connection string
...
while (myDataReader.Read())
{
    // execute command
    string command = "TRUNCATE TABLE {0}";

    MySqlCommand myCommand = new MySqlCommand();
    myCommand.CommandText = string.Format(command, reader[0]);

    using (MySqlConnection myConnection = new MySqlConnection(myConnString))
    {
        myCommand.Connection = myConnection;
        myCommand.Connection.Open();

        myCommand.ExecuteNonQuery();
    }
}

Это должно быть достаточно близко, чтобы помочь вам встать на правильный путь.

...