首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql中根据输入文件自动建表

mysql中根据输入文件自动建表
EN

Stack Overflow用户
提问于 2012-02-06 20:43:28
回答 4查看 14.9K关注 0票数 9

我有一个包含大量列的文件,我想将此文件输入到mysql表中。

问题是,如果我们有8列的文件,那么我们将首先创建表,方法是-

代码语言:javascript
复制
CREATE TABLE `input` (
  `idInput` varchar(45) DEFAULT NULL,
  `row2` varchar(45) DEFAULT NULL,
  `col3` varchar(45) DEFAULT NULL,
  `col4` varchar(45) DEFAULT NULL,
  `col5` varchar(45) DEFAULT NULL,
  `col6` varchar(45) DEFAULT NULL,
  `col7` varchar(45) DEFAULT NULL,
  `col8` varchar(45) DEFAULT NULL
);

然后我们将通过以下方式输入文件:

代码语言:javascript
复制
LOAD DATA INFILE "FILE" INTO TABLE input;

但问题是,我有150列的文件,我想把这个文件自动插入到mysql表中(这样我就不需要先创建表)。我的文件的第一行是header,它应该是表中的列名,而且每列和每行都有不同的数据类型。

那么有什么简单的方法可以做到这一点,这样我就可以用这个表做不同的事情了吗?

我使用的是mysql命令行客户端版本5.5.20 (windows 7)。

EN

回答 4

Stack Overflow用户

发布于 2013-07-18 05:30:09

使用phpmyadmin。它有能力创建基于文件的第一行和猜测表结构的表。单击“导入”链接并选择您的文件。不要忘记选择适合您的文件格式,主要是CSV。

如果文件太大,phpmyadmin无法容纳,有时我会将文件" head“并使用phpmyadmin中的head文件来创建表,然后使用LOAD DATA命令导入该文件。

这让我的生活变得更轻松。

票数 2
EN

Stack Overflow用户

发布于 2012-02-06 21:21:14

我不认为直接使用MySQL可以做到这一点。不知何故,必须猜测列的定义。你将不得不使用第二种语言来读出第一行,制作表格,然后导入。

不过,您可以使用mysqldump来完成此操作。

票数 1
EN

Stack Overflow用户

发布于 2014-01-22 21:52:55

您可以尝试使用SequelPro mysql客户端。

使用此工具,您可以使用“文件->导入”选项,在"CSV导入字段映射“窗口中,您可以选择”新建“按钮,而不是选择导入到现有的表中。

如果您的CSV有一个标题行来描述列名会更好,这样它就可以给出正确的列名。该工具还擅长根据内容猜测列的类型。

如果将VARCHAR(255)设置为文本类型字段的默认类型,最终可能会遇到问题。如果是这种情况,请将这些字段的类型更改为文本类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9160290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档