从包含300多列的csv,txt或xls文件创建MySQL表

时间:2014-03-18 17:50:05

标签: mysql excel csv

我需要创建一个包含300多列的MySQL表。我有一个excel文件,第一行中的每个字段名称和第二行中的字段长度。所有数据类型都是VARCHAR。是否有可用的方法或工具来获取此文件并创建具有指定字段长度的MySQL表?

我尝试使用MySQL for Excel但我仍然需要手动定义每个字段的长度,这很乏味。我研究过的所有其他方法似乎都需要相同的东西。如果我找不到东西,显然我必须手工制作这张桌子,但我想在投入那么多时间之前我会问。

以下是前几列的示例:

field1    field2    field3    field4
4         2         255       8

尚无要导入的数据。我现在只需要创建表。

谢谢!

2 个答案:

答案 0 :(得分:0)

你可以用一些langague C ++,PHP解析txt文件......然后构建一个请求并执行它。

PHP和PDO :: module将使这个最简单。

我不知道某个程序是否已经完成这项工作。这是一个解决方案。

如果您选择这样做并遇到麻烦,欢迎您。每个stackoverflow成员都会帮助您。

编辑:

有一个例子。如何使用PDO和PHP创建表 Link

我猜你可以做这样的事情:

<?php

    $dns = 'mysql:host=localhost;dbname=w3cyberlearning';
    $user = 'user2000';
    $pass = 'password2000';

    $db = new PDO($dns, $user, $pass);


    $sql = "CREATE TABLE IF NOT EXISTS" +
           $table_name + "(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,";

    $i = 0;
    foreach ($fields as &$value)
    {
      if (i++ != 0)
        $sql += ",";
      $sql += $value + " VARCHAR(200) NOT NULL";
    }       
    $sql += ")";

    $sq = $db->query($sql);

    if ($sq) {
        echo 'created';
    }
    ?>

$ fields包含所有字段名称和$ table_name的数组,表格的名称。

答案 1 :(得分:0)

我不知道有任何工具可以做到这一点,但是使用您选择的编程语言将Excel文件作为CSV文件读取似乎非常简单,并从输入创建表。 例如使用c ++或java。 见ie this link