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

Thả cơ sở dữ liệu MySQL khớp với một số ký tự đại diện?

Ý tưởng cơ bản là chạy "hiển thị bảng" trong cơ sở dữ liệu của bạn và sử dụng kết quả từ đó để chọn các bảng bạn muốn. Tôi không nghĩ MySQL cho phép bạn làm bất cứ điều gì với tập kết quả từ "hiển thị bảng", nhưng có lẽ tôi đã nhầm.

Đây là một giải pháp nhanh chóng và hiệu quả bằng cách sử dụng shell:

mysql -u your_user -D your_database_name -e "show tables" -s | 
  egrep "^Whatever_" | 
  xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

Điều đó sẽ in ra tất cả các lệnh shell để thả các bảng bắt đầu bằng "Dù_". Nếu bạn muốn nó thực sự thực thi các lệnh đó, hãy xóa từ "echo".

CHỈNH SỬA :Tôi quên giải thích ở trên! Tôi không biết bạn đã quen với kịch bản shell như thế nào, nhưng đây là:

mysql -u your_user -D your_database_name -e "show tables" -s

in ra danh sách tất cả các bảng của bạn, với tiêu đề "Tables_in_your_database_name". Đầu ra từ đó được chuyển qua đường ống (ký hiệu | có nghĩa là "đường ống", như trong lệnh truyền) thông qua lệnh tiếp theo:

egrep "^Whatever_"

tìm kiếm bất kỳ dòng nào bắt đầu (ký hiệu ^ đó có nghĩa là "sinh vật có") từ "Dù_" và chỉ in những dòng đó. Cuối cùng, chúng tôi chuyển danh sách các bảng "Dù_ *" đó thông qua lệnh:

xargs -I "@@" echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

lấy từng dòng trong danh sách tên bảng và chèn nó thay vì "@@" trong lệnh

echo mysql -u your_user -D your_database_name -e "DROP TABLE @@"

Vì vậy, nếu bạn có một loạt các bảng có tên "Dù_1", "Dù_2", "Dù_3", các lệnh được tạo sẽ là:

echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
echo mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_3"

Kết quả nào sẽ xuất ra sau đây:

mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_1"
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_2"
mysql -u your_user -D your_database_name -e "DROP TABLE Whatever_3"

Tôi hy vọng rằng đó là đủ chi tiết và tôi không chỉ đánh bại bất kỳ ai với quá nhiều thông tin. Chúc bạn may mắn và hãy cẩn thận khi sử dụng lệnh "DROP TABLE"!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bắt đầu với GearHost để phát triển cơ sở dữ liệu MySQL

  2. Cách có các giá trị thập phân chính xác mà không cần làm tròn trong MySQL

  3. thêm các sự kiện sinh nhật vào lịch đầy đủ của jQuery mỗi năm

  4. Lỗi di chuyển keyring của máy chủ mysql 8.0 khi đăng nhập

  5. Nhận hàng gần đây nhất cho ID đã cho