我有一个包含很多列的数据集,我想将它们导入 MySQL 数据库,因此我希望能够在不手动指定列标题的情况下创建表。相反,我想为 MySQL CREATE TABLE 命令提供一个包含列标签的文件名。我在 Ubuntu 中使用标准的 MySQL 查询浏览器工具,但我没有在创建表对话框中看到此选项,也无法从 CREATE TABLE 文档页面中弄清楚如何编写查询来执行此操作。但一定有办法...
问问题
1186 次
1 回答
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 的作用。另请参阅泄漏抽象定律。
查看SQLFairy,因为该工具可能已经以可以帮助您的方式从文件转换为 SQL。FWIW MySQL Query Browser(或当前名称 MySQL Workbench)可以读取 SQL 文件。因此,您可能不必手动复制和粘贴。
于 2011-06-20T17:39:42.857 回答