Existe-t-il un moyen de définir la PRIMARY KEY dans une seule instruction "CREATE TABLE AS"?
Exemple - Je voudrais que ce qui suit soit écrit en 1 déclaration plutôt qu'en 2:
CREATE TABLE "new_table_name" AS SELECT a.uniquekey, a.some_value + b.some_value FROM "table_a" AS a, "table_b" AS b WHERE a.uniquekey=b.uniquekey;
ALTER TABLE "new_table_name" ADD PRIMARY KEY (uniquekey);
Existe-t-il une meilleure façon de procéder en général (en supposant qu'il existe plus de 2 tableaux, par exemple 10)?
Selon le manuel: create table and create table as vous pouvez soit:
Mais pas les deux créent une table en tant que avec clé primaire - ce que vous vouliez.
Si vous souhaitez créer une nouvelle table avec la même structure de table d'une autre table, vous pouvez le faire dans une seule instruction (à la fois créer une nouvelle table et définir la clé primaire) comme ceci:
create table mytable_clone (like mytable including defaults including constraints including indexes);
Non, il n'y a pas de moyen plus court de créer la table et la clé primaire.