MySQL服务器上的CSV引擎

我不认为这是一个编程问题,所以我要在这里问 –

读这本高性能的mysql,我读了关于CSV引擎。 该段说:

CSV引擎可以将逗号分隔值(CSV)文件视为表格,但不支持索引。 该引擎允许您在服务器运行时将文件复制到数据库中或从数据库中复制出来。 如果您从电子表格导出CSV文件并将其保存在MySQL服务器的数据目录中,服务器可以立即读取它。 同样,如果您将数据写入CSV表格,外部程序可以立即读取数据。 CSV表格作为数据交换格式和某些日志logging特别有用。

我从本段得到的是,我可以将一个.CSV文件复制到数据库的数据目录,它应该显示为一个可以读取的表。 但是,只要我将一个testing.csv文件复制到目录中,它就不会显示为表格。 我无法访问它。

我也使用MySQL 5.5

有谁知道为什么这不起作用,或者我做错了什么?

我select在我的MySQL服务器上试试这个问题,看看有什么问题。 看起来您需要在MySQL中创build表(使用engine = csv指定),以便将表格适当地添加到MySQL中,并且将跟踪表字段元数据。 在我的testing中,我没有先使用“create table”,就无法让MySQL学习csv文件。

例:

  1. 在这个例子中,创build一个名为foo的新csv,一个名为“i”的列用于一个整数,而“c”用于一个字符字段: CREATE TABLE foo (i int not null, c char(10) not null) engine=csv;
  2. foo.frm,foo.CSM,foo.CSV是在/ var / lib / mysql / data / dbname中创build的,你会注意到foo.CSV是零字节。
  3. 将现有的csv(与表中定义的格式相匹配)复制到foo.CSV中:

     1,"FOOBAR" 2,"FOOBAZ" 3,"BARBAZ" 
  4. 在mysql中,从foo中select*应该产生以下结果:

     mysql> select * from foo; +---+--------+ | i | c | +---+--------+ | 1 | FOOBAR | | 2 | FOOBAZ | | 3 | BARBAZ | +---+--------+ 3 rows in set (0.00 sec)