【问题标题】:How to load column names, data from a text file into a MySQL table?如何将列名、文本文件中的数据加载到 MySQL 表中?
【发布时间】:2011-06-20 17:31:52
【问题描述】:

我有一个包含很多列的数据集,我想将其导入 MySQL 数据库,因此我希望能够在不手动指定列标题的情况下创建表。相反,我想为 MySQL CREATE TABLE 命令提供一个包含列标签的文件名。我在 Ubuntu 中使用标准的 MySQL 查询浏览器工具,但我没有在创建表对话框中看到此选项,也无法从 CREATE TABLE 文档页面中弄清楚如何编写查询来执行此操作。但一定有办法……

【问题讨论】:

    标签: mysql load create-table


    【解决方案1】:

    CREATE TABLE 语句不仅仅包含列名

    • 表名*
    • 列名*
    • 列数据类型*
    • 列约束,例如 NOT NULL
    • 列选项,例如 DEFAULT、字符集
    • 表约束,例如 PRIMARY KEY* 和 FOREIGN KEY
    • 索引
    • 表格选项,例如存储引擎、默认字符集

    * 强制

    您无法仅从列名列表中获得所有这些信息。您应该自己编写 CREATE TABLE 语句。


    关于您的评论:许多软件开发框架支持在不使用 SQL DDL 的情况下声明表的方法。例如。 Hibernate 使用 XML 文件。 Rails ActiveRecord、PHP Doctrine 和 Perl 的 SQLFairy 支持 YAML。可能还有其他工具使用其他格式,例如 JSON,但我不知道。

    但最终,所有这些“简化”的接口在学习 SQL 时同样复杂,但无法准确表示 SQL 的作用。另见The Law of Leaky Abstractions


    查看SQLFairy,因为该工具可能已经以可以帮助您的方式从文件转换为 SQL。 FWIW MySQL Query Browser(或当前名称 MySQL Workbench)可以读取 SQL 文件。因此,您可能不必手动复制和粘贴。

    【讨论】:

    • 如何从包含列名和列数据类型的文件中获取?创建它比在 CREATE TABLE 语句中费力地输入每个列名要容易得多。
    • 看起来解决方案是在文本文件中创建列规范,然后将其复制粘贴到我的查询浏览器中。这看起来可以避免重新输入。谢谢,您的评论引导我找到“解决方案”。
    猜你喜欢
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    相关资源
    最近更新 更多