Hay una manera para establecer la CLAVE PRINCIPAL en una sola «CREAR TABLA» declaración?

Ejemplo – me gustaría que el siguiente sea escrito en 1 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 manera mejor de hacer esto en general (suponga que hay más de 2 tablas, por ejemplo, 10)?

InformationsquelleAutor TimY | 2012-06-24

5 Comentarios

  1. 43

    Según el manual: crear tabla y crear una tabla como usted puede:

    • crear tabla con la clave primaria de la primera, y el uso seleccione en más tarde
    • crear una tabla como primero, y el uso agregar la clave principal más tarde

    Pero no tanto crear una tabla como con clave principal – lo que usted quería.

    • De las dos opciones, la creación de la clave principal (y su correspondiente índice) después los datos se cargan probablemente será más rápido.
  2. 13

    Si quieres crear una nueva tabla con la misma estructura de la tabla de otra tabla, usted puede hacer esto en una declaración (tanto la creación de una nueva tabla y la configuración de la clave primaria) como este:

    create table mytable_clone (like mytable including defaults including constraints including indexes);
  3. -1

    bien en mysql ,tanto que es posible en un comando

    el comando es

    create table new_tbl (PRIMARY KEY(`id`)) as select * from old_tbl;

    donde id es la columna de clave principal de old_tbl

    hecho…

    • Votada abajo ya que esta es la sintaxis mysql, no postgres (por la pregunta). Y no es posible en postgres.
    • bueno, tengo exactamente el mismo problema en mysql en el mismo momento de la pregunta publicado y me la resolvieron con este comando ,así que creo que esto puede ser útil a mi amigo aquí.(al lado no se me permite el comentario,sin embargo, y pensó que la sintaxis de SQL será el mismo para Postgre SQL,así que he publicado esto como respuesta) de todos modos gracias por exapnding mi conocimiento acerca de postgre sql…
    • Superior voto, incluso si no era la pregunta era útil para mí 😉
  4. -4

    Usted puede hacer esto de 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;
    • Eso es válido para Postgres
    • Parece sintaxis de Oracle

Dejar respuesta

Please enter your comment!
Please enter your name here