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

MySQL ИЗПУСКА всички таблици, игнорирайки външните ключове

Намерих генерирания набор от изрази за отпадане за полезен и препоръчвам тези настройки:

  1. Ограничете генерираните капки до вашата база данни по следния начин:
SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';

Забележка 1:Това не изпълнява операторите DROP, а само ви дава списък с тях. Ще трябва да изрежете и поставите изхода във вашия SQL двигател, за да ги изпълните.

Забележка 2:Ако имате VIEW_NAME, ще трябва да коригирате всеки DROP TABLE `VIEW_NAME` изявление към DROP VIEW `VIEW_NAME` ръчно.

  1. Забележка, според http://dev.mysql .com/doc/refman/5.5/en/drop-table.html , отпадането с каскада е безсмислено / подвеждащо:

Следователно, за да работят операторите drop, ако имате нужда от:

SET FOREIGN_KEY_CHECKS = 0

Това ще деактивира проверките за референтна цялост - така че когато приключите с извършването на нужните отклонения, ще искате да нулирате проверката на ключ с

SET FOREIGN_KEY_CHECKS = 1
  1. Окончателното изпълнение трябва да изглежда така:
SET FOREIGN_KEY_CHECKS = 0;
-- Your semicolon separated list of DROP statements here
SET FOREIGN_KEY_CHECKS = 1;

NB:за да използвате по-лесно изхода на SELECT, опцията mysql -B може да помогне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изтриете колона от таблица в MySQL

  2. Премахване на дубликати от резултат от множество обединения в таблици с различни колони в MySQL

  3. Как да комбинирате два реда и да изчислите разликата във времето между две стойности на времеви отпечатъци в MySQL?

  4. Как да разбера дали mysql таблица използва myISAM или InnoDB Engine?

  5. #1062 - Дублиран запис '' за ключ 'unique_id' при опит за добавяне на УНИКАЛЕН КЛЮЧ (MySQL)