Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да съкратите таблицата в MySQL

Понякога може да се наложи да изтриете всички редове в таблица в MySQL база данни. Има няколко начина да го направите с помощта на изрази TRUNCATE TABLE, DROP TABLE и DELETE. В тази статия ще разгледаме как да съкратим таблицата в MySQL с помощта на израза MySQL TRUNCATE TABLE.

Как да съкратим таблица в MySQL

Ето как да съкратите таблицата в MySQL с помощта на израза TRUNCATE TABLE. Ето синтаксиса на израза MySQL TRUNCATE TABLE.

TRUNCATE [TABLE] table_name;

В горната заявка трябва да посочите името на вашата таблица, която да бъде съкратена, на мястото на име_на_таблица.

Ключовата дума TABLE не е задължителна след TRUNCATE.

Бонус четене:MySQL DROP VIEW

Примери за ТАБЛИЦА ЗА ОТСЪЖАНЕ на MySQL

Да приемем, че имате поръчките на таблицата в MySQL.

mysql> create table daily_orders(id int, order_date date,amount int);

mysql> insert into daily_orders(id, order_date, amount) 
       values(1, '2020-07-01',250),(2,'2020-07-02',320),
       (3,'2020-07-03',450);

mysql> select * from daily_orders;
+------+------------+--------+
| id   | order_date | amount |
+------+------------+--------+
|    1 | 2020-07-01 |    250 |
|    2 | 2020-07-02 |    320 |
|    3 | 2020-07-03 |    450 |
+------+------------+--------+

Ето SQL заявката за съкращаване на таблица в MySQL.

mysql> truncate table daily_orders;

mysql> select * from daily_orders;
Empty set (0.00 sec)

Бонус четене:Как да създадете индекс в MySQL

MySQL TRUNCATE срещу DELETE

TRUNCATE TABLE е подобен на израза DELETE в MySQL. Има обаче няколко ключови разлики. Ето разликата между TRUNCATE и DELETE в MySQL.

Изтриване на MySQL

  • DELETE е израз на език за манипулиране на данни (DML). Изтрива един ред наведнъж. Така че се изпълнява чрез заключване на редове и всеки ред е заключен за изтриване
  • Операциите ИЗТРИВАНЕ се регистрират
  • Можете да посочите клауза WHERE в израза DELETE, за да изтриете само конкретни редове във вашата таблица
  • DELETE е по-бавно от съкращаването, тъй като операциите за изтриване се регистрират в журнал

MYSQL TRUNCATE

  • TRUNCATE е команда за език за описание на данни (DDL), която заключва таблицата за изтриване, но не и редовете.
  • TRUNCATE премахва всички данни в таблицата. Така че не можете да посочите клауза WHERE в израза TRUNCATE.
  • Операциите TRUNCATE не се регистрират и следователно са много по-бързи от оператора DELETE.

Отмяната е възможна както в операторите DELETE, така и в TRUNCATE.

Бонус за четене:Как да създадете съхранена процедура в MySQL

Как да съкратим таблица с външен ключ

Ако вашата таблица има ограничение за външен ключ, тогава когато изпълните оператор TRUNCATE за тази таблица, ще получите следната грешка.

ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key 
constraint fails

Така че трябва да влезете в MySQL и да деактивирате проверките на външни ключове, преди да съкратите таблиците, като използвате следната команда

SET FOREIGN_KEY_CHECKS=0;

След като съкратите таблиците, активирайте отново проверките на външни ключове

SET FOREIGN_KEY_CHECKS=1;

Бонус за четене:Как да създадете потребител в MySQL

Как да съкратите всички таблици в MySQL

MySQL TRUNCATE TABLE ви позволява да изтривате само една таблица в даден момент. Така че, ако искате да изтриете няколко таблици, трябва да издадете отделни команди TRUNCATE TABLE. Ето пример за съкращаване на множество таблици table1, table2, table3, …

mysql> TRUNCATE TABLE table1;
mysql> TRUNCATE TABLE table2;
mysql> TRUNCATE TABLE table3;

Бонус четене:Как да създадете база данни в MySQL

Ето SQL заявка за генериране на множество изрази TRUNCATE TABLE, като се използват имената на таблиците във вашата база данни. Заменете DATABASE_NAME в следната заявка с името на вашата база данни.

mysql> SELECT Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';')
     FROM INFORMATION_SCHEMA.TABLES where  table_schema in ('sample');
+------------------------------------------------------------+
| Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME, ';') |
+------------------------------------------------------------+
| TRUNCATE TABLE sample.a;                                   |
| TRUNCATE TABLE sample.calendar;                            |
| TRUNCATE TABLE sample.categories;                          |
| TRUNCATE TABLE sample.daily_orders;                        |
| TRUNCATE TABLE sample.login;                               |
| TRUNCATE TABLE sample.meeting;                             |
| TRUNCATE TABLE sample.order_status;                        |
| TRUNCATE TABLE sample.orders;                              |
| TRUNCATE TABLE sample.orders2;                             |
| TRUNCATE TABLE sample.orders3;                             |
| TRUNCATE TABLE sample.product_sales;                       |
| TRUNCATE TABLE sample.products;                            |
| TRUNCATE TABLE sample.sales;                               |
| TRUNCATE TABLE sample.user_data;                           |
| TRUNCATE TABLE sample.users;                               |
+------------------------------------------------------------+

Използвайте горния резултат от заявката, за да съкратите всички таблици в базата данни. Надяваме се, че сега можете да съкратите таблицата в MySQL

Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да свържете множество бази данни в PHP, MYSQLi &PDO

  2. Създайте диаграма на база данни в MySQL Workbench

  3. MySQL връзка през SSH тунел - как да посочите друг MySQL сървър?

  4. PHP - Използване на PDO с масив от клаузи IN

  5. Най-често срещаните MySQL заявки