Tôi có một bảng sản phẩm trong tệp mysql.sql. Tôi muốn trích xuất một bảng đó và đặt nó vào trong tập tin riêng của nó. Làm thế nào bạn sẽ đi về việc này?Trích xuất bảng từ tệp kết xuất mysql.sql
Trả lời
Tôi biết không có công cụ nào để phân tích các tệp kết xuất mySQL thô theo cách này.
Hoặc sao chép + dán (có khả năng rườm rà) hoặc nhập vào cơ sở dữ liệu tạm thời, thả mọi thứ khác và đưa bảng trở lại tệp.
Nếu bãi đã được thực hiện với cú pháp chèn mở rộng, sau đó dữ liệu bảng thực tế sẽ được thực hiện như một dòng duy nhất trong các tập tin dump:
INSERT INTO tablename (field, ...) VALUES (data, ...), (data, ...), (etc..)
mà bạn chỉ có thể grep ra. Việc giải nén định nghĩa bảng thực tế sẽ khó hơn, mặc dù nó NÊN ngay lập tức trên dòng dữ liệu. Không có quyền truy cập vào một trình bao thích hợp tại thời điểm này, nhưng đi ra khỏi đỉnh đầu của tôi, một cái gì đó như thế này có thể làm các trick (trong mã giả):
# retrieve line # that data insertion for the wanted table occurs on
DATALINE=`grep -l 'INSERT INTO tablename' dumpfile.sql`
# limiting ourselves to the part of the file up to the data line, find the line number
# of the last CREATE TABLE, which SHOULD be the one creating the table for the data
CREATELINE=`head -$DATALINE|grep -l 'CREATE TABLE'|tail -1|awk '{"print $1"}'`
Bạn có thể trích xuất DDL với đầu/đuôi đúng đắn và số dòng chúng tôi vừa truy xuất:
CREATE=`head -$CREATELINE dumpfile.sql|tail -$($CREATELINE - $DATALINE - 1)`
hãy nhớ rằng tôi sẽ đảm bảo không hoạt động nhưng sẽ đủ để giúp bạn bắt đầu.
tôi thấy this nice solution, bạn phải tải về this script trên máy chủ của bạn và gõ
$> ./MyDumpSplitter.sh yourfile.sql your_table_name
này sẽ trích xuất bảng của bạn thành your_table_name.sql
Optionnal
Bây giờ bạn có thể đổi tên nó bằng cách sử dụng loại lệnh này
$> sed -i 's/`your_table_name`/`your_table_name2`/g' your_table_name.sql
Và tái tiêm nó với
mysql> source your_table_name.sql;
hãy cẩn thận: với việc trích xuất một bảng đơn từ một bãi chứa đầy đủ, 'các câu lệnh SET' ở đầu bãi chứa bị mất, ví dụ: SET NAMES utf8; - vì vậy bạn có thể nhập một bảng utf8 và nhận dữ liệu tranh giành bởi vì khách hàng sử dụng mã hóa sai! cùng một vấn đề với tất cả các giải pháp khác .... – michabbb
Đúng vậy, cảm ơn bạn vì thông tin này –
Tôi chạy vào vấn đề mà một thời gian trước đây và đã viết một kịch bản Perl. Nó hoạt động tốt, nhưng nó là một phiên bản cũ của MySQL. Gọi nó thích:
extract.pl -table=TABLENAME mysqldumpfile.sql > recovered_table.sql
#!/usr/bin/perl -s -wnl #extract a single table from a mysql dump BEGIN { $table or warn "Usage: $0 -table=TABLE_TO_EXTRACT mysqldumpfile.sql" and exit 1; } /^DROP TABLE IF EXISTS `$table`/ .. /^UNLOCK TABLES;$/ and print;
chỉ đơn giản là bạn có thể chạy biên tập dòng cho lọc và chuyển lệnh văn bản như dưới đây:
$ sed -n -e '/CREATE TABLE.*products/,/CREATE TABLE/p' mysql.sql > products.sql
Nếu bạn muốn trích xuất một cơ sở dữ liệu bạn có thể sử dụng:
sed -n '/^-- Current Database: `dbname`/,/^-- Current Database: `/p' dumpfile > dbname.sql 2>error
Ví dụ:
sed -n '/^-- Current Database: `blogs`/,/^-- Current Database: `/p' dump.sql > blogs.sql 2>error
- 1. Trích xuất bảng từ DOCX
- 2. Trích xuất các liên kết từ bảng html
- 3. Trích xuất VBA từ bảng tính Excel
- 4. trích xuất các từ từ một tệp
- 5. Trích xuất mã VB.NET từ tệp exe
- 6. Trích xuất tiêu đề từ tệp PDF?
- 7. trích xuất tên tệp từ đường dẫn
- 8. Trích xuất EXIF từ JPEG
- 9. Nhập các bảng cụ thể từ tệp kết xuất oracle?
- 10. Trích xuất URL từ chuỗi
- 11. Cách trích xuất tên tệp từ tên đường dẫn tệp?
- 12. Trích xuất văn bản từ pdf và các tệp từ
- 13. Trích xuất ngòi/xib từ bảng phân cảnh (iOS)
- 14. Trích xuất một hàng từ một đối tượng bảng
- 15. Trích xuất bảng từ tài liệu Word DOCX trong python
- 16. Trích xuất thông tin từ $?
- 17. cách trích xuất từ dispatch.json.JsObject
- 18. Trích xuất văn bản từ PDF
- 19. Trích xuất hình thu nhỏ từ tệp jpeg
- 20. cách trích xuất dữ liệu từ tệp xml bằng notepad ++?
- 21. Trích xuất URL từ các tệp văn bản/HTML lớn
- 22. Trích xuất tọa độ từ tệp KML BatchGeo bằng Python
- 23. Trích xuất các kết quả phù hợp từ php regex
- 24. Trích xuất mã băm SHA1 từ tệp torrent
- 25. Cách trích xuất các lớp từ tệp .jar?
- 26. Trích xuất tọa độ từ tệp KML trong Java
- 27. Trích xuất 1 tệp từ tar.gz bằng bash
- 28. Cách trích xuất URL từ văn bản
- 29. trích xuất âm thanh từ một fla
- 30. Grep trích xuất chỉ toàn bộ từ
Sẽ không có lý do gì để xóa mọi thứ khác, bạn có thể mysqldump các bảng riêng lẻ – stew
@stew điểm tốt. @OP đây là cách thực hiện: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html # option_mysqldump_tables –