我有一个包含很多列的数据集,我想将其导入 MySQL 数据库,因此我希望能够在不手动指定列标题的情况下创建表。相反,我想向(大概)MySQL CREATE TABLE 命令提供一个带有列标签的文件名。我在 Ubuntu 中使用标准的 MySQL 查询浏览器工具,但我没有在创建表对话框中看到这个选项,我也无法从 CREATE TABLE 文档页面弄清楚如何编写查询来执行此操作。但必须有办法......
最佳答案
CREATE TABLE 语句包含的不仅仅是列名
- 表名*
- 列名*
- 列数据类型*
- 列约束,比如 NOT NULL
- 列选项,例如 DEFAULT、字符集
- 表约束,如 PRIMARY KEY* 和 FOREIGN KEY
- 索引
- 表选项,如存储引擎、默认字符集
* 必填
您无法仅从列名列表中获得所有这些。您应该自己编写 CREATE TABLE 语句。
回复您的评论:许多软件开发框架都支持不使用 SQL DDL 来声明表的方法。例如。 Hibernate 使用 XML 文件。 YAML 受 Rails ActiveRecord、PHP Doctrine 和 Perl 的 SQLFairy 支持。可能还有使用其他格式(例如 JSON)的其他工具,但我暂时不知道有一个。
但最终,所有这些“简化”的接口(interface)在学习上都和 SQL 一样复杂,但无法准确表示 SQL 的作用。另见 The Law of Leaky Abstractions .
查看 SQLFairy ,因为该工具可能已经以可以帮助您的方式从文件转换为 SQL。 FWIW MySQL Query Browser(或其当前名称 MySQL Workbench)可以读取 SQL 文件。因此,您可能不必手动复制和粘贴。
关于mysql - 如何将文本文件中的列名、数据加载到 MySQL 表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6415101/