2010-06-23 55 views
17

我知道有LOAD DATA INFILE语句,它允许我将结构化数据插入到表中。将文件内容插入到MySQL表的列中

我很好奇的是,是否可以将文件的内容插入到单个列中。所以,是这样的:

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

可能吗?

回答

31

是的,这是可能的。您可以使用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所需的相同特权。

+0

谢谢,这正是我所需要的。 – 2010-06-23 11:31:53

+0

不幸的是,LOAD_FILE似乎是在Linux上崩溃的bug。 http://bugs.mysql.com/bug.php?id=38403 – ehfeng 2012-11-27 15:49:39

+0

我们可以使用全局属性来输入文件,如c:/ something – 2013-11-10 07:32:30

0

编辑:我理解你错了,对不起,Daniel Vassallo有正确的答案。可能这是有用的无论如何

我认为你正在寻找BLOBTEXT,见docs。如果你想将文件日期存储在数据库中,这些就是你可能要查找的内容

+0

我的问题的提法不清楚吗? (即我应该修改它吗?) – 2010-06-23 11:33:24

+0

不,重新阅读你的问题后,我完全理解它。答案太快了;) – DrColossos 2010-06-23 11:49:19

相关问题