【问题标题】:Automatically create MySQL table from input/file [duplicate]从输入/文件自动创建 MySQL 表 [重复]
【发布时间】:2023-03-05 15:45:02
【问题描述】:

可能重复:
Generate table schema inspecting Excel(CSV) and import data

我正在开发一种基于输入自动创建 MySQL 表的工具。

例如。

输入

Y|abc|123|1.12|2012-12-20 00:00:00

输出

CREATE TABLE MyTable (
 is_enabed char(1),
 call_sign varchar(8),
 facility_id tinyint(4),
 bounds decimal(4,2)
 created_time datetime
 ) ENGINE=MyISAM DEFAULT CHARSET=latin1

我现在有一个使用 Python 的准工作原型。在深入研究之前,我想看看是否已经存在类似的项目(免费、开源)。如果是这样,我的努力可能会更好地用于研究该项目,而不是不知疲倦地重新发明轮子。

【问题讨论】:

  • 我去掉了data-mining这个标签,因为这个问题没有涉及到数据挖掘。您可能想要搜索“SQL 模式推断”,尽管我相信这主要是通过具有更复杂模式的 XML 数据完成的。另请查看numpy.genfromtext,它从 CSV 数据进行类型推断。

标签: python mysql database database-design


【解决方案1】:

Generate table schema inspecting Excel(CSV) and import data

这个问题(以及最上面的回复,提到xlrd)已经讨论过这个主题。

而事实上,MySQL 显然内置了这样一个功能:

https://dev.mysql.com/doc/refman/5.0/en/procedure-analyse.html

ANALYSE() 检查查询结果并返回对结果的分析,该分析建议每列的最佳数据类型可能有助于减小表大小。

【讨论】:

    【解决方案2】:

    我不这么认为。至少我从未听说过有一种工具可以做到这一点。话虽如此,我不知道这是不是一个好主意。我知道它面向对 mysql (sql) 知识很少的用户,但他们在使用您的工具时可能会遇到更多问题,而不是阅读好的教程。例如,如果他们需要时间戳而不是日期时间呢?或者他们可能需要更精确的小数。此外,也许他们需要区分大小写的排序规则......

    无论如何,这听起来是一个不错的项目,我相信这只是一个示例,还有更多内容。我希望在不久的将来阅读您的工具。祝你好运。

    【讨论】:

    • 感谢您的反馈。
    • 哎呀,我不小心按了回车键,过了我的 5 分钟编辑窗口。所以无论如何,是的,这只是冰山一角。该工具将面向数据挖掘用户。通常,我有 3-5 个易于解析的原始数据集(csv、json、xml、管道/制表符分隔),但最终手动或通过 phpmyadmin 创建表比实际编写解析器花费更多时间。这在某种程度上是一个反复试验的过程。我可以把这段额外的时间用在……嗯,分析上。 :)
    • 听起来很有趣。我实际上是在数据挖掘平台工作,所以我完全理解你^^
    猜你喜欢
    • 2016-02-08
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多