首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为所有MySql表生成CREATE语句

为所有MySql表生成CREATE语句
EN

Stack Overflow用户
提问于 2013-08-05 05:02:37
回答 4查看 36.3K关注 0票数 22

我希望在一个查询结果中所有创建MySql表的语句。

例如,INFORMATION_SCHEMA包含所有表名、注释等,但是创建语句存储在MySql中的位置呢?可以在一个查询中检索所有表吗?

目前,我正在检索一个表的 ddl,如下所示。我有100张桌子,所以每次都可以重复同样的步骤,也就是占用时间的过程。

代码语言:javascript
复制
show create table row_format;
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-05 05:16:16

代码语言:javascript
复制
mysqldump -h localhost -u root -p --no-data --compact  some_db


mysqldump -d --compact --compatible=mysql323 ${dbname}|egrep -v "(^SET|^/\*\!)"

如何使用mysqldump仅导出创建表命令

票数 26
EN

Stack Overflow用户

发布于 2021-02-12 22:33:58

我今天需要这样做,回答生成了一个我无法导入的.sql文件:它声明了完整的CREATE TABLE语句,外键指向它尚未声明的表。

相反,我使用了液基

  1. 下载MySQL连接器/J(与pick Platform无关):https://dev.mysql.com/downloads/connector/j/
  2. 从下载连接器jar的目录中,创建一个liquibase.properties文件并按如下方式编辑:
代码语言:javascript
复制
outputDefaultSchema=true
includeSchema=true
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/replace_with_your_db
username=replace with your MySQL user
password=replace with your MySQL password
classpath=full path of the MySQL connector, for instance C:\mysql-connector-java-8.0.21.jar
  1. 然后运行安装液基
代码语言:javascript
复制
liquibase --changeLogFile=schema.mysql.sql generateChangeLog

这将为您的架构生成SQL命令,这些命令的顺序都是正确的。

例如:

代码语言:javascript
复制
CREATE TABLE address (id BIGINT AUTO_INCREMENT NOT NULL, line VARCHAR(128) NULL, owner_id BIGINT NOT NULL);
CREATE TABLE person (id BIGINT AUTO_INCREMENT NOT NULL, name VARCHAR(64) NOT NULL);
ALTER TABLE address ADD CONSTRAINT fk_address_person FOREIGN KEY (owner_id) REFERENCES person (id) ON UPDATE RESTRICT ON DELETE RESTRICT;
票数 0
EN

Stack Overflow用户

发布于 2020-06-15 17:30:56

有人刚刚给我展示了一个更简单的方法。

  1. 高亮显示所有表
  2. 右击。
  3. 选择“复制到剪贴板”,然后选择“创建语句”。
  4. 转到文本编辑器并粘贴,所有东西都在那里。
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18050857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档