我有一个包含大量列的文件,我想将此文件输入到mysql表中。
问题是,如果我们有8列的文件,那么我们将首先创建表,方法是-
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
);然后我们将通过以下方式输入文件:
LOAD DATA INFILE "FILE" INTO TABLE input;但问题是,我有150列的文件,我想把这个文件自动插入到mysql表中(这样我就不需要先创建表)。我的文件的第一行是header,它应该是表中的列名,而且每列和每行都有不同的数据类型。
那么有什么简单的方法可以做到这一点,这样我就可以用这个表做不同的事情了吗?
我使用的是mysql命令行客户端版本5.5.20 (windows 7)。
发布于 2013-07-18 05:30:09
使用phpmyadmin。它有能力创建基于文件的第一行和猜测表结构的表。单击“导入”链接并选择您的文件。不要忘记选择适合您的文件格式,主要是CSV。
如果文件太大,phpmyadmin无法容纳,有时我会将文件" head“并使用phpmyadmin中的head文件来创建表,然后使用LOAD DATA命令导入该文件。
这让我的生活变得更轻松。
发布于 2012-02-06 21:21:14
我不认为直接使用MySQL可以做到这一点。不知何故,必须猜测列的定义。你将不得不使用第二种语言来读出第一行,制作表格,然后导入。
不过,您可以使用mysqldump来完成此操作。
发布于 2014-01-22 21:52:55
您可以尝试使用SequelPro mysql客户端。
使用此工具,您可以使用“文件->导入”选项,在"CSV导入字段映射“窗口中,您可以选择”新建“按钮,而不是选择导入到现有的表中。
如果您的CSV有一个标题行来描述列名会更好,这样它就可以给出正确的列名。该工具还擅长根据内容猜测列的类型。
如果将VARCHAR(255)设置为文本类型字段的默认类型,最终可能会遇到问题。如果是这种情况,请将这些字段的类型更改为文本类型。
https://stackoverflow.com/questions/9160290
复制相似问题