mysql - 如何将文本文件中的列名、数据加载到 MySQL 表中?

标签 mysql load create-table

我有一个包含很多列的数据集,我想将其导入 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/

相关文章:

sql - 数据步骤中的字符长度与 proc sql

php - 消息系统。关于数据库设计的问题

mysql - 如何从一组复合行中找到最大值?

ruby-on-rails - 如何在运行 "auto-build"和 'development' 模式时加载不同的 CSS 样式表文件到 'production'?

php - 是否可以使用 MySQL - LOAD DATA LOCAL INFILE 仅上传 CSV 文件的前 10 行?

mySQL 复合键、主键、唯一键和对复合键的引用

mysql - 无法通过网络连接到 MySQL

mysql - 如何获取用于创建特定表的sql语句?

javascript - 如何使用 JavaScript 在网站中滚动加载内容?

sql - POSTGRES - 使用 ON CONFLICT DO NOTHING 防止串行递增