2017-02-04 4 views

Antwort

5

Es gibt keinen Amazon Redshift-Befehl, der ADD COLUMN IF NOT EXISTS entspricht.

See: ALTER TABLE documentation

Um diese Funktionalität zu replizieren, würde Ihre Anwendung zuerst die Tabelle Metadaten abfragen müssen und dann die Entscheidung treffen, ob der ADD COLUMN Befehl zu erteilen.

0

Johns Antwort brachte mich in die richtige Richtung, hier ist der Befehl, den ich in Redshift am besten fand, um nach der Existenz einer Spalte zu suchen.

SELECT EXISTS(
    SELECT * FROM pg_table_def 
    WHERE schemaname = '<my_schema_name>' 
    and tablename = '<my_table_name>' 
    and "column" = '<my_column_name>' 
); 

Beachten Sie die doppelten Anführungszeichen um „Spalte“, da column erforderlich sind, ist auch ein Stichwort.

Zusätzlich, wenn die Tabelle, an der Sie interessiert sind, nicht im public Schema ist. Möglicherweise müssen Sie zunächst Ihren Suchpfad ändern, so dass die Ergebnisse zurückgegeben werden, wie erwartet:

set SEARCH_PATH to <schema_name>; 

die PG_TABLE_DEF AWS Docs Details für mehr sehen.

Verwandte Themen