2010-06-23 26 views
17

Tôi biết có tuyên bố LOAD DATA INFILE, cho phép tôi INSERT dữ liệu có cấu trúc vào bảng.Chèn nội dung tệp vào cột của bảng MySQL

Điều tôi tò mò là liệu có thể INSERT nội dung của tệp vào một cột hay không. Vì vậy, là một cái gì đó như thế này:

INSERT INTO my_table (stamp, what) VALUES (NOW(), LOAD DATA INFILE 'my_file'); 

có thể?

Trả lời

31

Có thể. Bạn có thể sử dụng chức năng LOAD_FILE():

CREATE TABLE my_table (stamp datetime, what text); 

INSERT INTO my_table (stamp, what) VALUES (NOW(), LOAD_FILE('/tmp/my_file.txt')); 

Bạn sẽ phải đảm bảo rằng các tập tin có thể đọc được bởi MySQL, và rằng người sử dụng MySQL của bạn có các đặc quyền FILE. Đây là đặc quyền tương tự được yêu cầu cho LOAD DATA INFILE.

+0

Cảm ơn bạn, đây chính xác là những gì tôi cần. –

+0

Thật không may, LOAD_FILE dường như là lỗi để bị hỏng trên Linux. http://bugs.mysql.com/bug.php?id=38403 – ehfeng

+0

Chúng ta có thể nhập tệp bằng cách sử dụng thuộc tính chung, như c:/something –

0

chỉnh sửa: Tôi hiểu bạn sai, xin lỗi, Daniel Vassallo có câu trả lời đúng. Có thể điều này hữu ích anyway

Tôi nghĩ bạn đang tìm kiếm BLOB hoặc TEXT, xem docs. Nếu bạn muốn lưu trữ ngày tháng trong ngày tháng, đây là những gì bạn có thể đang tìm kiếm

+0

Công thức xây dựng câu hỏi của tôi không rõ ràng? (tức là tôi nên sửa đổi nó?) –

+0

Không, sau khi đọc lại câu hỏi của bạn, tôi hiểu nó một cách hoàn hảo. Chỉ là một chút quá nhanh với câu trả lời;) – DrColossos

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