如何填充数据库?

时间:2012-03-08 16:46:11

标签: mysql

我有一个带有单个表的mysql数据库,其中包含一个自动增量ID,一个字符串和两个数字。我想用来自文本文件的许多字符串填充此数据库,所有数字最初都重置为0.

有没有办法快速完成?我想创建一个生成许多INSERT语句的脚本,但这似乎有点原始和缓慢。特别是因为mysql在远程站点上。

4 个答案:

答案 0 :(得分:7)

是 - 使用LOAD DATA INFILE docs are here示例:

LOAD DATA INFILE 'csvfile'
INTO TABLE table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 0 LINES
(cola, colb, colc)
SET cold = 0,
cole = 0;

注意set行 - 这里是您设置默认值的位置。

根据您的字段分隔符更改行FIELDS TERMINATED BY ','

答案 1 :(得分:1)

如果您可以访问服务器的文件系统,则可以使用LOAD DATA

如果您不想使用语法,最简单的方法(如果在Windows上)使用HeidiSQL

为此目的,它有友好的巫师。

如果你从文本文件中发布样本行,也许我可以用正确的语法帮助你。

答案 2 :(得分:1)

其他答案只回答你问题的一半。对于另一半(归零数字列):

<强>或者:

  1. 将数字列的默认值设置为0
  2. 在您的文本文件中,只需删除数值
  3. 即可
  4. 这将导致LOAD INFILE将字段读取为null,并且将分配defauly值,您已将其设置为0.
    1. 在表格中输入数据后,发出一个MySQL命令将字段归零,例如

      UPDATE table SET first_numeric_column_name = 0, second_numeric_column_name = 0 WHERE 1;

    2. 要总结一切,请使用LOAD DATA INFILE

答案 3 :(得分:1)

我建议您使用 Softbuilder(我为之工作)的 SB Data Generator,下载并安装免费试用版。

首先,创建与 MySQL 数据库的连接,然后转到“工具 -> 虚拟数据”并导入您的测试数据(文件必须为 CSV 格式)。

导入测试数据后,您将可以在同一窗口中预览和查询它们,而无需将它们插入到数据库中。

现在,如果您想将测试数据插入到您的数据库中,请转到“工具 -> 数据生成”并选择“从虚拟数据生成数据”。

SB data generator from Softbuilder