gpt4 book ai didi

mysql - 使用 Eclipse 从 Google Cloud Sql 生成数据库的 DDL 语句会导致脚本出现问题?

转载 作者:IT老高 更新时间:2023-10-28 23:46:13 27 4
gpt4 key购买 nike

我使用数据源浏览器从 Eclipse 连接到 Google Cloud SQL 数据库。但是,当我使用它的选项Generate DDL 生成该数据库的DDL 时,我无法在我的脚本中获得AUTO_INCREMENT,而是获得相应的主键。

如何在我的脚本中获取 AUTO_INCREMENT

最佳答案

虽然这不是直接回答问题,但我相信它将为根本目标提供解决方案:提取 DDL。

假设:以下是shell脚本,所以需要合适的环境(OS X、Linux、cygwin)

步骤:

  1. 安装命令行脚本 (follow the instructions here)
  2. 在与 google_sql.sh 相同的目录中创建以下自定义脚本:

    GOOGLE_CLOUD_SQL_INSTANCE=test:test

    echo "SELECT CONCAT('SELECT CONCAT(\"SHOW CREATE TABLE ',schema_name,'.\",table_name,\";\") \"select \\\\\"use ',schema_name,';\\\\\";\" FROM information_schema.tables WHERE table_schema = \"',schema_name,'\";') 'use information_schema;' FROM SCHEMATA WHERE schema_name NOT IN ('information_schema','mysql','performance_schema');" >> $$.1.get_schema.sql

    ./google_sql.sh $GOOGLE_CLOUD_SQL_INSTANCE information_schema < $$.1.get_schema.sql > $$.2.show_create.sql

    ./google_sql.sh $GOOGLE_CLOUD_SQL_INSTANCE information_schema < $$.2.show_create.sql > $$.3.sql.out

    ./google_sql.sh $GOOGLE_CLOUD_SQL_INSTANCE information_schema < $$.3.sql.out > $$.4.create.raw

    awk -F" " '/Table Create Table/{print "";}
    /CREATE/{sub(/^..*CREATE TABLE/,"CREATE TABLE");print $0}
    $1 == "" {print $0}
    /^\)/{print $0";"}
    /^use/{print $0}' $$.4.create.raw > $GOOGLE_CLOUD_SQL_INSTANCE.ddl.sql

    rm $$.*
  3. 将脚本中的“test:test”替换为您的 Google Cloud 实例标识符

  4. 执行脚本以生成格式为“test:test”.ddl.sql 的文件,该文件将包含所有数据库中所有表的 DDL。

关于mysql - 使用 Eclipse 从 Google Cloud Sql 生成数据库的 DDL 语句会导致脚本出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11137960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com