it-swarm.com.de

TABELLE ERSTELLEN WIE eine andere Tabelle, jedoch mit zusätzlichen Spalten

Gibt es eine Möglichkeit, eine Tabelle zu erstellen, die dieselbe Struktur wie eine andere Tabelle hat, jedoch zusätzliche Spalten enthält? Von diese Frage kann ich die Struktur einer Tabelle kopieren mit:

CREATE TABLE new_table_name ( like old_table_name including all)

Und dann kann ich mit ALTER TABLE new_table_name ADD COLUMN... Nacheinander Spalten hinzufügen, aber ich suche nach einer Möglichkeit, dies prägnanter zu machen, wie zum Beispiel:

CREATE TABLE new_table_name ( like old_table_name including all), new_col1 new_col1_type, new_col2 new_col2_type,...
7
Albert Rothman

Sie können die folgende Syntax verwenden.

CREATE TABLE old_table_name (
  id serial,
  my_data text,
  primary key (id)
);

CREATE TABLE new_table_name ( 
  like old_table_name including all,
  new_col1 integer, 
  new_col2 text

);

Die Geige ist hier

17
Sahap Asci

Nein, es gibt keine prägnantere Methode dafür. Aber ALTER TABLE kann mehrere Argumente akzeptieren,

ALTER TABLE foo
  ADD column bar int,
  ADD column baz int;

Wenn Ihr Ziel kurz und bündig ist, ist SQL fast nie eine ideale Sprache.

3
Evan Carroll

Du kannst den ... benutzen CREATE TABLE AS <query> Option, wie in der Dokumentation beschrieben.

--Code nicht in PostgreSQL getestet--

    CREATE TABLE MyNewTable
    AS
    SELECT *, CAST (NULL AS INT) AS IntCol1, CAST( NULL AS VARCHAR(10)) AS StrCol2...
    FROM MyOriginalTable 
     WITH NO DATA;
3
SQLRaptor