tablas - CREAR TABLA COMO con CLAVE PRIMARIA en una declaración(PostgreSQL)
postgresql llave primaria compuesta (5)
De acuerdo con el manual: crea una tabla y crea una tabla, ya que puedes:
- cree la tabla con la clave principal primero, y use seleccionar en más adelante
- crear tabla como primera y usar agregar clave principal más tarde
Pero no tanto crear tabla como con clave principal : lo que quería.
¿Hay una manera de establecer la CLAVE PRIMARIA en una sola declaración "CREAR TABLA COMO"?
Ejemplo: me gustaría que se escribiera lo siguiente en 1 declaración en lugar de 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);
¿Hay una mejor manera de hacerlo en general (suponga que hay más de 2 tablas, por ejemplo, 10)?
No, no hay una forma más corta de crear la tabla y la clave principal.
Puedes hacerlo de esta manera
CREATE TABLE IOT (EMPID,ID,Name, CONSTRAINT PK PRIMARY KEY( ID,EMPID))
ORGANIZATION INDEX NOLOGGING COMPRESS 1 PARALLEL 4
AS SELECT 1 as empid,2 id,''XYZ'' Name FROM dual;
Si desea crear una nueva tabla con la misma estructura de tabla de otra tabla, puede hacerlo en una declaración (creando una nueva tabla y configurando la clave principal) de la siguiente manera:
create table mytable_clone (like mytable including defaults including constraints including indexes);
bien en mysql, ambos son posibles en un comando
el comando es
create table new_tbl (PRIMARY KEY(`id`)) as select * from old_tbl;
donde id
es la columna con la clave principal de old_tbl
hecho...