2012-06-21 2 views
25

Mi sono collegato a un database Google Cloud SQL da eclipse utilizzando l'esploratore di origine dati. Ma quando genero DDL di quel database usando la sua opzione Generate DDL, non riesco a ottenere lo AUTO_INCREMENT nel mio script ma ottenere la chiave primaria corrispondente.Generare istruzioni DDL del database da Google Cloud Sql utilizzando Eclipse causa il problema nello script?

Come potrei ottenere il AUTO_INCREMENT nel mio script?

+0

Stai utilizzando Google Plugin per Eclipse? –

+0

@ Neil H, sì sto usando Google Plugin –

+1

Ti suggerisco di rileggere la tua domanda e provare a formularla in modo diverso in modo che sia più chiaro ciò che stai chiedendo altrimenti la gente voterà per chiuderla come Non una domanda. Hai solo bisogno di aggiungere un paio di frasi in più, invece di cercare di spiegare tutto in una frase (la seconda). –

risposta

0

Forse questo aiuta:

Google Cloud SQL Step 3

Un altro esempio di utilizzo di DDL è questo:

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) 
) 

Fonte: http://www.tinohempel.de/info/info/datenbank/sql_tabelle.htm
E 'in tedesco, ma gli esempi sono molto buoni!

Spero di aver capito bene la tua domanda e questo aiuta!

1

Mentre questo non risponde direttamente alla domanda, credo che fornirà una soluzione all'obiettivo principale: Estrazione del DDL.

Assunta: Il seguente è uno script di shell, quindi un ambiente adeguato (OS X, Linux, Cygwin) è richiesto

Passi:

  1. installare gli script della riga di comando (follow the instructions here)
  2. Creare il seguente script personalizzato nella stessa directory del 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. Sostituisci "test: test" nello script con l'identificatore di istanza di Google Cloud

  4. Esegui lo script per produrre un file con il formato "test: test" .ddl.sql che avrà il DDL per tutte le tabelle in tutto banche dati.