Подтвердить что ты не робот

Создание операторов DDL базы данных из Google Cloud Sql с использованием проблемы eclipse в script?

Я подключился к базе данных Google Cloud SQL из eclipse с помощью Data Source explorer. Но когда я создаю DDL этой базы данных, используя ее опцию Generate DDL, я не могу получить AUTO_INCREMENT в моем script, но получить соответствующий первичный ключ.

Как я могу получить AUTO_INCREMENT в моем script?

4b9b3361

Ответ 1

Хотя это напрямую не отвечает на этот вопрос, я считаю, что это обеспечит решение основной задачи: извлечение DDL.

Предполагаем следующее: оболочка script, поэтому требуется соответствующая среда (OS X, Linux, cygwin)

Шаги:

  • Установите сценарии командной строки (следуйте инструкциям здесь)
  • Создайте следующий пользовательский script в том же каталоге, что и 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 $$.*
    
  • Замените "test: test" в script на свой идентификатор экземпляра Google Cloud

  • Выполните script, чтобы создать файл формата "test: test".ddl.sql, который будет иметь DDL для всех таблиц во всех базах данных.

Ответ 2

Возможно, это помогает:

Google Cloud SQL Шаг 3

Другим примером использования DDL является следующее:

CREATE TABLE tabelle
(
feld datentyp [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [COMMENT 'string'],
CONSTRAINT name
  PRIMARY KEY (feld1, feld2, ...)
  FOREIGN KEY (feld1, feld2, ...) REFERENCES tabelle (feld1, feld2)
)

Источник: http://www.tinohempel.de/info/info/datenbank/sql_tabelle.htm
Это на немецком языке, но примеры очень хороши!

Надеюсь, я правильно понял ваш вопрос, и это помогает!