Vì vậy, về cơ bản tôi có một cơ sở dữ liệu Joomla trong MySQL có một loạt các bảng có tiền tố 'jmla_'. Tôi muốn đổi tên tất cả các bảng này bằng cách thay thế tiền tố 'jmla_' bằng tiền tố 'jos_'. Bất kỳ ý tưởng về làm thế nào để làm điều này với một kịch bản SQL đơn giản hoặc truy vấn SQL?Trong MySQL, làm cách nào để đổi tên hàng loạt các bảng trong cơ sở dữ liệu?
Trả lời
- xuất khẩu sử dụng phpMyAdmin để sql tập tin
- Sử dụng bất kỳ trình soạn thảo văn bản (Tôi thích vim, làm việc tuyệt vời trên các tập tin lớn) với chức năng "tìm và thay thế" để mở tập tin
- Đừng "tìm và thay thế" , đặt tiền tố thực tế của bạn vào ô tìm kiếm và được cập nhật trong hộp thay thế
- Nhập tệp bằng phpmyadmin.
Nhớ bỏ cơ sở dữ liệu cũ trước khi nhập bằng phpmyadmin. Điều này có thể được thực hiện, kiểm tra các tùy chọn phù hợp trong quá trình xuất.
RENAME TABLE jmla_whatever to jos_whatever;
Bạn sẽ phải viết tập lệnh để bao gồm tất cả các bảng - bạn có thể điền tập lệnh của mình với đầu ra là show tables
. Xem http://dev.mysql.com/doc/refman/5.0/en/rename-table.html để biết chi tiết.
Run tuyên bố này:
SELECT 'rename table '||table_name||' to '||'jos'||substr(table_name,5)||';'
FROM information_schema.tables
WHERE table_name like 'jmla%'
Điều này tạo ra một kịch bản mà sẽ đổi tên tất cả các bảng. Chỉ cần sao chép & dán đầu ra vào máy khách SQL của bạn.
(Bạn sẽ cần phải thay đổi ||
để điều hành nối phi tiêu chuẩn MySQL trong trường hợp bạn không chạy nó trong chế độ ANSI)
Hãy chắc chắn rằng bạn cũng lọc trên cơ sở dữ liệu bạn muốn áp dụng điều này, nếu không điều này sẽ tạo ra các truy vấn RENAME trên tất cả các cơ sở dữ liệu bao gồm các cài đặt Joomla khác mà bạn có thể có: 'AND TABLE_SCHEMA = 'your_joomla_db'' – Fanis
SELECT concat ('rename table ',table_name,' to ',table_name,'_old;')
FROM information_schema.tables
WHERE table_name like 'webform%'
and table_schema='weiss_db_new'
sẽ làm việc.
Bạn đã cân nhắc sử dụng Thành phần công cụ quản trị Akeeba cho Joomla! và sau đó sử dụng Trình chỉnh sửa tiền tố cơ sở dữ liệu để thay đổi các tiền tố bảng, hoạt động thực sự tốt. Công cụ quản trị Akeeba có thể được sử dụng để bảo mật cho Joomla của bạn! cài đặt
Akeeba có thể thu được here
- 1. Làm cách nào để đổi tên một cột trong bảng cơ sở dữ liệu bằng SQL?
- 2. R tải lên hàng loạt dữ liệu vào cơ sở dữ liệu MYSQL
- 3. trong ứng dụng MAGENTO, bảng cơ sở dữ liệu mysql nào chứa dữ liệu cho các cửa hàng?
- 4. Làm thế nào để xóa tất cả các bảng trong cơ sở dữ liệu MySQL?
- 5. làm cách nào để giảm giá cho các mặt hàng trong cơ sở dữ liệu?
- 6. Làm thế nào để sao lưu cơ sở dữ liệu với 100 hàng trong mỗi bảng?
- 7. Làm cách nào để chuyển đổi hàng cơ sở dữ liệu thành cấu trúc, trong Go?
- 8. Làm thế nào để chèn dữ liệu mẫu vào bảng cơ sở dữ liệu MySQL
- 9. Cách lấy tên bảng trong cơ sở dữ liệu mysql bằng Python và MySQLdb?
- 10. thiết kế trường bảng trong cơ sở dữ liệu mysql?
- 11. Làm cách nào để xóa cơ sở dữ liệu MySQL?
- 12. Đổi tên tất cả các bảng trong cơ sở dữ liệu
- 13. Tìm nạp các hàng trong bảng cơ sở dữ liệu MySQL bằng cách sử dụng MySQL C API và C++
- 14. Làm cách nào để đếm các bảng trống trong cơ sở dữ liệu?
- 15. Cách sao chép bảng từ một cơ sở dữ liệu mysql sang cơ sở dữ liệu mysql khác
- 16. Làm cách nào để sắp xếp lại các hàng trong cơ sở dữ liệu sql
- 17. Đổi tên tên cột trong cơ sở dữ liệu postgresql
- 18. Làm cách nào để tìm kiếm cơ sở dữ liệu mysql cho tên cột cụ thể
- 19. Cách tốt nhất để chuyển đổi cơ sở dữ liệu mysql thành cơ sở dữ liệu sqlite là gì?
- 20. PostgreSQL - Đổi tên cơ sở dữ liệu
- 21. Đặt tên cột boolean trong bảng cơ sở dữ liệu
- 22. MySQL: Nhiều bảng hoặc nhiều cơ sở dữ liệu?
- 23. Làm thế nào để xóa một hàng trong một bảng cơ sở dữ liệu sqlite?
- 24. Cách nhanh hơn để biết tổng số hàng trong cơ sở dữ liệu MySQL?
- 25. Lỗi khi kéo cơ sở dữ liệu mysql trong cơ sở dữ liệu mysql cục bộ
- 26. Làm thế nào để chuyển đổi tệp cơ sở dữ liệu H2Database thành tệp cơ sở dữ liệu MySQL .sql?
- 27. Bảng xóa MySQL - Cơ sở dữ liệu hiện tại hoặc mọi cơ sở dữ liệu?
- 28. Sử dụng bảng cơ sở dữ liệu làm hàng đợi
- 29. có bao nhiêu hàng trong bảng cơ sở dữ liệu mysql?
- 30. Truy vấn để xác định kích thước của bảng trong cơ sở dữ liệu? (Mysql)
Và những gì sẽ xảy ra nếu một trong những tên của các hàng có "jmla_" trong đó? Hay tệ hơn, nếu dữ liệu có ở đâu đó trong đó? –
1. Tôi chưa bao giờ thấy trường hợp này trong thực tế 2. Giải pháp của tôi đã tạo ra một điều tốt, thay đổi điểm thành cơ sở dữ liệu không tồn tại. –
Vấn đề là, khi có một giải pháp tốt hơn, không có giá trị rủi ro khi tìm kiếm và thay thế đơn giản. Giải pháp có thể dẫn đến các vấn đề khó gỡ lỗi trong tương lai. –