Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL DROP tất cả các bảng, bỏ qua các khóa ngoại

Tôi nhận thấy tập hợp các câu lệnh drop được tạo hữu ích và đề xuất các chỉnh sửa này:

  1. Hạn chế các giọt đã tạo vào cơ sở dữ liệu của bạn như thế này:
SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'MyDatabaseName';

Lưu ý 1:Điều này không thực thi các câu lệnh DROP, nó chỉ cung cấp cho bạn danh sách các câu lệnh đó. Bạn sẽ cần phải cắt và dán đầu ra vào công cụ SQL của mình để thực thi chúng.

Lưu ý 2:Nếu bạn có CHẾ ĐỘ XEM, bạn sẽ phải sửa từng DROP TABLE `VIEW_NAME` tuyên bố với DROP VIEW `VIEW_NAME` thủ công.

  1. Lưu ý, theo http://dev.mysql .com / doc / refman / 5.5 / vi / drop-table.html , giảm theo tầng là vô nghĩa / gây hiểu lầm:

Do đó, để các câu lệnh drop hoạt động, bạn cần:

SET FOREIGN_KEY_CHECKS = 0

Điều này sẽ vô hiệu hóa kiểm tra tính toàn vẹn tham chiếu - vì vậy khi bạn thực hiện xong các lần giảm bạn cần, bạn sẽ muốn đặt lại kiểm tra khóa với

SET FOREIGN_KEY_CHECKS = 1
  1. Quá trình thực thi cuối cùng sẽ giống như sau:
SET FOREIGN_KEY_CHECKS = 0;
-- Your semicolon separated list of DROP statements here
SET FOREIGN_KEY_CHECKS = 1;

NB:để sử dụng đầu ra của SELECT dễ dàng hơn, tùy chọn mysql -B có thể giúp ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để bạn mô phỏng MySQL (không có ORM) trong Node.js?

  2. Sử dụng SQLAlchemy ORM cho id không phải khóa chính, duy nhất, tự động tăng dần

  3. Đang cố gắng kết nối với máy chủ MySQL từ xa (lỗi 2003)

  4. Tham gia Laravel với 3 Bảng

  5. Lưu trữ số thẻ tín dụng trong PHIÊN - các cách giải quyết?