Очистить все таблицы mysql php

Очистить данные в таблице MySQL с помощью PHP?

Как удалить все записи из одной таблицы в MySQL с помощью PHP?

Первый, как правило, лучший выбор, поскольку DELETE FROM медленнее на InnoDB.

Собственно, не ответили ли уже на ваш другой вопрос?

– это команда SQL. В PHP вы должны использовать:

mysql_query('TRUNCATE TABLE table;'); 

если вам не нужно сохранить текущее значение последовательности AUTO_INCREMENT, и в этом случае вы, вероятно, предпочтете

хотя если время операции имеет значение, сохраняя значение AUTO_INCREMENT, обрезая таблицу, а затем восстанавливая значение с помощью

ALTER TABLE `table` AUTO_INCREMENT = value 

произойдет намного быстрее.

Пример MySQLI, где $con – это переменная подключения к базе данных и имя таблицы: mytable.

mysqli_query($con,'TRUNCATE TABLE mytable'); 

TRUNCATE закроет вашу таблицу и reset первичный ключ
DELETE также сделает вашу таблицу пустой, но не будет reset primary key.

мы можем использовать для truncate

мы можем использовать для удаления

мы также можем дать условия, как показано ниже

УДАЛИТЬ ИЗ tablename WHERE >

Не нужно звучать грубо, но на это можно легко ответить быстрым поиском Google. Вы должны это сделать, прежде чем спрашивать сообщество. w3schools.com – отличный сайт для изучения всего этого. Вот ссылка, которая является отличным учебником для php и mysql. http://www.w3schools.com/php/php_mysql_intro.asp

На самом деле, я считаю, что оптимизатор MySQL выполняет TRUNCATE, когда вы удаляете все строки.

Источник

Как удалить все таблицы в базе данных, не отбрасывая сама база данных?

Я хотел бы удалить все таблицы из базы данных, но не удалять сама база данных. Является ли это возможным ? Я просто ищу более короткий путь, чем удаление базы данных и ее создание снова. Благодаря !

Самый короткий – это воссоздать базу данных. но если вы не хотите …

Это для MySQL / PHP. Не проверено, но что-то в этом роде.

$mysqli = new mysqli("host", "my_user", "my_password", "database"); $mysqli->query('SET foreign_key_checks = 0'); if ($result = $mysqli->query("SHOW TABLES")) < while($row = $result->fetch_array(MYSQLI_NUM)) < $mysqli->query('DROP TABLE IF EXISTS '.$row[0]); > > $mysqli->query('SET foreign_key_checks = 1'); $mysqli->close(); 

Нет простого способа сделать это. Либо вам нужно знать, что таблицы заблаговременно:

// edit вы можете получить эту информацию, используя запрос SHOW TABLE STATUS

$tables = array('users','otherdata'); foreach($tables as $table)

или вы можете сбросить базу данных и заново создать ее пустым (это действительно не так много усилий!):

db.execute('DROP DATABASE SITEDATA'); db.execute('CREATE DATABASE SITEDATA'); 

Вам придется отбрасывать каждую таблицу в db отдельно, поэтому отбрасывание базы данных и ее повторное создание на самом деле будет самым коротким маршрутом (и самым быстрым в этом отношении).

Читайте также:  Cracking codes with python an introduction to building and breaking ciphers

Когда я должен был сделать это в Oracle, я бы написал инструкцию select, которая создавала бы инструкции для таблицы таблиц. Что-то вроде:

Выберите «DROP TABLE» || table_name || ‘;’ из user_tables;

Затем я мог бы передать вывод инструкции select в файл. После того, как я запустил это, у меня был бы файл, который забросил бы все мои таблицы для меня. Это будет выглядеть примерно так:

ТАБЛИЦА ТАБЛИЦЫ ТАБЛИЦЫ 1;

Не эксперт mysql, но я бы предположил, что у него будет аналогичное средство для выбора всех таблиц для схемы, а также прямого вывода из инструкции SQL в файл.

Используйте SHOW TABLE STATUS чтобы получить все таблицы в вашей базе данных, затем перебрать результат и отбросить их по одному.

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

Функция PHP, чтобы удалить все таблицы, кроме некоторых (адаптированных отсюда ), для всех, кому это может понадобиться:

 $exceptions_string=rtrim($exceptions_string, ",'"); $exceptions_string .="')" ; $sql="SELECT CONCAT('DROP TABLE ', TABLE_NAME, '; ') FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name NOT IN $exceptions_string"; $result=$ conn->query($sql); while($row = $result->fetch_array(MYSQLI_NUM)) < $conn->query($row[0]); > > //drop_all_tables(array("table1","table2","table3","table4"), $mysqli); ?> 

Источник

Создание и удаление таблиц

CREATE TABLE name_table(
id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL ,
title VARCHAR(255) ,
message TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
age INT(11) DEFAULT 0 ,
price DOUBLE
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;

PRIMARY KEY — первичный ключ, ограничение, позволяющее однозначно идентифицировать каждую запись в таблице SQL.

Первичные ключи должны содержать уникальные значения.

Первичный ключ не может иметь значения NULL.

NOT NULL — означает, что каждая строка должна содержать значение для этого столбца, нулевые значения допускаться не будут.

AUTO_INCREMENT — автоматический инкремент.

CHARACTER SET utf8 COLLATE utf8_general_ci — кодировка для конкретного поля, ставится сразу после типа.

). — здесь кодировка задана для всех полей

DEFAULT — значение по умолчанию.

ENGINE=InnoDB — тип таблицы(используемый движок) — InnoDB

Пример запроса на удаление таблицы name_table :

$sql = «DROP TABLE name_table» ;

Удалить все данные из таблицы

— данная команда очистит полностью таблицу и приведет ее к первоначальному состоянию,

когда она только создалась ( CREATE TABLE ) и в ней не было никаких записей.

— данная команда не производит сброс счётчика AUTO_INCREMENT , который используется, как известно, для автоматической генерации значения поля без необходимости его ручной установки. Чтобы этого избежать, можно использовать вместо команды выше данный вариант:

TRUNCATE TABLE name_table RESTART IDENTITY ;

— данный вариант вызова команды TRUNCATE позволит сбросить значение счётчика полей с AUTO_INCREMENT .

Поэтому значение поля первой добавленной записи после данного удаления будет 1 .

ПРИМЕРЫ создания таблиц

1 mysqli — объектно-ориентированный подход

Читайте также:  Java unable to invoke main method

// Создаем переменные
$servername = «localhost» ; // для локального сервера на компьютере
$username = «root» ; // имя пользователя
$password = «» ; // пароль если существует
$dbname = «newDB» ; // имя базы данных

// Устанавливаем соединение с сервером MySQL:
// создаем экземпляр класса new mysqli() и записываем, в качестве аргументов, наши переменные

$conn = new mysqli ( $servername , $username , $password , $dbname );

// Проверка соединения:
// если выполняется выражение $conn->connect_error , то останавливаем выполнение die
// и выводим «Не удалось подключиться»
// С помощью выражения $conn -> connect_error выведем информацию об ошибке .
// Иначе выведем: «Соединение успешно установлено»

if ( $conn -> connect_error ) die ( «Не удалось подключиться: » . $conn -> connect_error );
>
echo «Соединение успешно установлено» ;

// Запрос для создания таблицы users1

$sql = «CREATE TABLE users(
name VARCHAR(30) NOT NULL,
surname VARCHAR(30) NOT NULL PRIMARY KEY,
password VARCHAR(30) NOT NULL )» ;

// Проверка выполнения создания таблицы:
// Если значение $conn -> query($sql) будет — TRUE,
// тогда выведем сообщение «Таблица users создана успешно».
// В противном случае выведем сообщение «Ошибка при создании таблицы»
// и выведем информацию об ошибке: $conn->error.

if ( $conn -> query ( $sql ) === TRUE ) echo «Таблица users создана успешно

» ;
> else <
echo «Ошибка при создании таблицы: » . $conn -> error ;
>

// закрываем соединение
$conn -> close ();
?>

— После перезагрузки страницы выведет в браузере:

Таблица users создана успешно

В phpMyAdmin в базе данных newDB появилась таблица » users «

bd-5-1

2 mysqli — процедурный подход

// Создаем переменные
$servername = «localhost» ; // для локального сервера на компьютере
$username = «root» ; // имя пользователя
$password = «» ; // пароль если существует
$dbname = «newDB» ; // имя базы данных

// Устанавливает соединение с сервером MySQL с помощью функции mysqli_connect()

$conn = mysqli_connect ( $servername , $username , $password , $dbname );

if (! $conn ) die ( «Не удалось подключиться: » . mysqli_connect_error ());
>
echo «Соединение успешно установлено» ;

// Запрос для создания таблицы:
// NOT NULL — означает, что каждая строка должна содержать значение для этого столбца,
// нулевые значения допускаться не будут.
// PRIMARY KEY — первичный ключ, ограничение, позволяющее однозначно идентифицировать
// каждую запись в таблице SQL.

$sql = «CREATE TABLE users2(
name VARCHAR(30) NOT NULL,
surname VARCHAR(30) NOT NULL PRIMARY KEY, password VARCHAR(30) NOT NULL )» ;

// Проверка выполнения создания таблицы:
// Если запрос к базе данных — выполнен,
// тогда выведем сообщение «Таблица users2 создана успешно».
// В противном случае выведем сообщение «Ошибка при создании таблицы»
// и выведем информацию об ошибке mysqli_error($conn) ;

if ( mysqli_query ( $conn , $sql )) echo «Таблица users2 создана успешно

» ;
> else <
echo «Ошибка при создании таблицы: » . mysqli_error ( $conn ); >

// закрываем соединение
mysqli_close ( $conn );
?>

— После перезагрузки страницы выведет в браузере:

Читайте также:  Защита ссылок на php

Таблица users2 создана успешно

В phpMyAdmin в базе данных newDB появилась таблица » users2 «

// Создаем переменные
$servername = «localhost» ; // для локального сервера на компьютере
$username = «root» ; // имя пользователя
$password = «» ; // пароль если существует
$dbname = «newDB» ; // имя базы данных

// Подключение к серверу MySQL
// Обработка ошибок подключения: используем блок try-catch :

try // Подключение к серверу MySQL
$conn = new PDO ( «mysql:host= $servername ; dbname= $dbname » , $username , $password );

echo «Соединение успешно установлено

» ;

// Устанавливаем режим ошибки PDO в исключение

$conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION );

> catch ( PDOException $e ) <
echo «Ошибка при создании таблицы:
» . $e -> getMessage ();
>

// Созданние таблицы
try // Созданние SQL-запроса

$sql = «CREATE TABLE users3(
name VARCHAR(30) NOT NULL,
surname VARCHAR(30) NOT NULL PRIMARY KEY,
password VARCHAR(30) NOT NULL )» ;

// Устанавливаем режим ошибки PDO в исключение

$conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION );

$conn -> exec ( $sql );
echo «Таблица users3 создана успешно
» ;

> catch ( PDOException $e ) <
echo «Ошибка при создании таблицы:
» . $sql . $e -> getMessage ();
>

// Закрыть подключение
$conn = null ;
?>

— После перезагрузки страницы выведет в браузере:

Таблица users3 создана успешно

В phpMyAdmin в базе данных newDB появилась таблица » users3 «

Источник

DELETE. Удаление записей в таблице базы данных MySQL

Если вам необходимо удалить одну, несколько или все записи в таблице базы данных, то с этим вам поможет команда DELETE .

Синтаксис запроса на удаление записи.

Будьте предельно внимательны при выполнении запросов на удаление записей! Если вы не укажите команду WHERE и последующее условие, то будут удалены все записи в таблице.

Удаление нескольких записей таблицы

Для примера удалим несколько записей из таблицы books, которая хранится в базе данных Bookstore.

Оповестим сервер MySQL о базе данных, для которой будут выполнятся запросы.

Далее выведем записи таблицы books с идентификаторами с 1 по 5.

mysql> SELECT id, title, author, price, discount FROM books WHERE id BETWEEN 1 AND 5;
+—-+————————+——————————+———+———-+
| id | title | author | price | discount |
+—-+————————+——————————+———+———-+
| 1 | Капитанская дочка | А.С.Пушкин | 151.20 | 0 |
| 2 | Мертвые души | Н.В.Гоголь | 141.00 | 0 |
| 3 | Анна Каренина | Л.Н.Толстой | 135.00 | 20 |
| 4 | Бесы | Ф.М.Достоевский | 122.00 | 0 |
| 5 | Нос | Н.В.Гоголь | 105.00 | 0 |
+—-+————————+——————————+———+———-+
5 rows in set (0.00 sec)

Допустим необходимо удалить все записи с книгами за авторством Н.В.Гоголя. Запрос на удаление и его результат будет выглядеть следующим образом.

mysql> DELETE FROM books WHERE author= ‘Н.В.Гоголь’ ;
Query OK, 2 rows affected (0.00 sec)

Удаление всех записей таблицы

Если вам нужно очистить всю таблицу от имеющихся в ней данных, то просто выполните команду DELETE без каких либо условий.

Следующая команда удалит все записи в таблице books.

Источник

Оцените статью