我知道有LOAD DATA INFILE
语句,它允许我将结构化数据插入到表中。将文件内容插入到MySQL表的列中
我很好奇的是,是否可以将文件的内容插入到单个列中。所以,是这样的:
INSERT INTO my_table (stamp, what) VALUES (NOW(), LOAD DATA INFILE 'my_file');
可能吗?
我知道有LOAD DATA INFILE
语句,它允许我将结构化数据插入到表中。将文件内容插入到MySQL表的列中
我很好奇的是,是否可以将文件的内容插入到单个列中。所以,是这样的:
INSERT INTO my_table (stamp, what) VALUES (NOW(), LOAD DATA INFILE 'my_file');
可能吗?
是的,这是可能的。您可以使用LOAD_FILE()
功能:
CREATE TABLE my_table (stamp datetime, what text);
INSERT INTO my_table (stamp, what) VALUES (NOW(), LOAD_FILE('/tmp/my_file.txt'));
你必须确保该文件是可读的由MySQL,和你的MySQL用户有FILE
特权。这是LOAD DATA INFILE
所需的相同特权。
编辑:我理解你错了,对不起,Daniel Vassallo有正确的答案。可能这是有用的无论如何
我认为你正在寻找BLOB
或TEXT
,见docs。如果你想将文件日期存储在数据库中,这些就是你可能要查找的内容
我的问题的提法不清楚吗? (即我应该修改它吗?) – 2010-06-23 11:33:24
不,重新阅读你的问题后,我完全理解它。答案太快了;) – DrColossos 2010-06-23 11:49:19
谢谢,这正是我所需要的。 – 2010-06-23 11:31:53
不幸的是,LOAD_FILE似乎是在Linux上崩溃的bug。 http://bugs.mysql.com/bug.php?id=38403 – ehfeng 2012-11-27 15:49:39
我们可以使用全局属性来输入文件,如c:/ something – 2013-11-10 07:32:30