Jon*_*han 53 mysql database csv storage-engines
我刚刚了解到Mysql有一个Native CSV存储引擎,它将数据存储在每个表的逗号分隔值文件中.
是否可以直接从上传的CSV文件创建表格,例如:
CREATE TABLE USERS <PATH/USERS.CSV
users.csv在哪里上传?
pro*_*ype 84
刚刚发现了csvkit,它是一组用于CSV文件的unix命令行工具.安装在我的Mac上pip install csvkit
,命令是:
csvsql --dialect mysql --snifflimit 100000 bigdatafile.csv > maketable.sql
Run Code Online (Sandbox Code Playgroud)
您也可以提供数据库连接字符串,它可以直接加载表.
Shi*_*dim 39
这是不可能的.要创建表,您需要一个表模式.你拥有的是一个数据文件.无法使用它创建架构.你可以做的是检查你的文件是否有标题行.在这种情况下,您可以使用该标题行创建表,但需要手动创建.
但是,有一种方法可以通过批处理文件生成create table语句,如John Swapceinski在MySQL手册的注释部分所述.
John Swapceinski于2011年9月5日上午5:33发表.
使用.csv文件的标题创建表:
#!/bin/sh
# pass in the file name as an argument: ./mktable filename.csv
echo "create table $1 ( "
head -1 $1 | sed -e 's/,/ varchar(255),\n/g'
echo " varchar(255) );"
Run Code Online (Sandbox Code Playgroud)
小智 12
我建议使用MySQL Workbench导入数据.Workbench允许用户以CSV或JSON格式从文件创建新表.它只需通过向导单击几下即可处理表模式和数据导入.
在MySQL Workbench中,使用表列表中的上下文菜单并单击Table Data Import Wizard
.
更多来自MySQL Workbench 6.5.1表数据导出和导入向导文档.在这里下载MySQL Workbench.
小智 9
我知道这是一个有点陈旧的主题,但有一个更简单的方法 - 如果 - 你使用phpmyadmin作为你的mysql前端.
1)使用默认设置创建数据库.
2)选择数据库.
3)单击屏幕顶部的"导入".
4)在"格式"下选择CSV.
5)选择适合您的csv文件的选项(在文本编辑器中打开csv文件并引用它以获得'适当'选项).
如果您搞砸了,没问题,只需删除数据库并再试一次.
小智 6
除了提到的其他解决方案之外,Mac用户可能还需要注意,SQL Pro具有CSV导入选项,该选项运行良好且灵活 - 您可以在导入时更改列名和字段类型.选择新表,否则初始对话可能会显得有点令人沮丧.
SQL Pro:http: //www.sequelpro.com Sequel Pro - 用于处理MySQL数据库的数据库管理应用程序
归档时间: |
|
查看次数: |
133175 次 |
最近记录: |