Um eine Tabelle ohne Daten zu kopieren gibt es in PostgreSQL 8.3/8.4/9 folgende Möglichkeiten:
1) Tabelle ohne default und check constraints kopieren
CREATE TABLE "mynewtable" AS SELECT * FROM "myoldtable" WHERE 1=0;
Durch die Bedingung „1=0“ wird die Tabelle ohne Inhalt kopiert. Wenn man die Bedingung „1=0“ weglässt, wird die Tabelle mit Inhalt (Datensätzen) kopiert.
2) Tabelle mit default und check constraints kopieren
CREATE TABLE "mynewtable" (LIKE "myoldtable" INCLUDING DEFAULTS INCLUDING CONSTRAINTS);
Bei diesem Beispiel werden default und check constraints übernommen.
Hinweis: Bitte beachten Sie, dass sich der Artikel auf PostgreSQL 8.3/8.4/9.0 bezieht. Jedoch sollte es theoretisch auch möglich sein, die oben genannten Beispiele in PostgreSQL 8.0 / 8.1 / 8.2 zu realisieren. Dies wurde jedoch nicht von uns getestet.
IDKBAD001172 KBAD001172