2010-03-24 28 views
11

Tôi đã chơi với mysqlimport và tôi đã chạy vào hạn chế trong đó tên tệp phải giống với tên bảng. Có cách nào để làm việc vòng này không?Sử dụng mysqlimport nơi tên tệp khác với tên bảng

Tôi không thể đổi tên tệp vì nó được sử dụng bởi các quy trình khác và tôi không muốn sao chép tệp vì sẽ có nhiều tệp, một số tệp rất lớn.

Tôi muốn sử dụng mysqlimport không LOAD INFILE.

EDIT: Thật không may điều này cần phải chạy trên cửa sổ nên không có thủ thuật với các liên kết tượng trưng tôi sợ.

+0

Tại sao bạn không muốn sử dụng 'LOAD DATA INFILE', khi nó giống như mysqlimport làm gì và nó cho phép bạn chỉ định một tên bảng khác nhau cho một tệp đầu vào đã cho? –

+0

Tôi đang sử dụng Java/JDBC và gọi LOAD INFILE dường như không tạo ra bất kỳ lỗi nào khi có sự cố khi tải tệp trong một số trường hợp. Bạn nhận được các cảnh báo được hiển thị nếu bạn chạy nó thông qua Workbench nhưng trình điều khiển JDBC cho tôi không có gì trở lại. –

+0

mysqlimport nên cho phép tham số đặt tên bảng khác, đây là tính năng cơ bản ... – baptx

Trả lời

0

Bạn đã thử sử dụng lệnh alias, giả sử bạn đang sử dụng hệ thống Linux phải không?

-1

Chỉ cần tạo một liên kết tượng trưng:

ln -s /tmp/real_file.txt /tmp/your_table_name.txt 
11

Bạn không nói những gì nền tảng bạn đang ở trên. Trên unix, bạn có thể tạo liên kết tượng trưng cho tệp:

ln -s filename.txt tablename.txt 

Sau đó, sử dụng lệnh đó trong lệnh mysqlimport.

Nhưng mysqlimport chỉ là một giao diện dòng lệnh LOAD INFILE vì vậy bạn cũng có thể làm điều này trên dòng lệnh:

mysql -e "load data infile 'filename' into table TBL_NAME" dbname 
+0

Sợ tôi đang ở trên cửa sổ. –

+0

bạn vẫn có thể sử dụng mysql trên các cửa sổ với cùng một cú pháp .. symlinking các tập tin là một chút của một cách kỳ lạ để làm điều đó. –

-1

mysqlimport sử dụng tên tập tin để xác định tên của bảng vào đó các dữ liệu nên nạp vào. Chương trình thực hiện điều này bằng cách loại bỏ bất kỳ đuôi tệp nào (khoảng thời gian cuối cùng và bất kỳ thứ gì sau nó); kết quả sau đó được sử dụng làm tên bảng. Ví dụ, mysqlimport xử lý tệp có tên City.txt hoặc City.dat làm đầu vào được tải vào bảng có tên Thành phố.

Các vấn đề liên quan