Создайте таблицу как с первичным ключом в одном операторе (PostgreSQL)
есть ли способ установить первичный ключ в одном операторе" создать таблицу как"?
пример - я хотел бы, чтобы следующее было написано в 1 заявлении, а не 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);
есть ли лучший способ сделать это в целом (предположим, что существует более 2 таблиц, например 10)?
5 ответов
согласно руководству:создать таблицу и создать таблицу в качестве вы можете:
- создать таблицу сначала с первичным ключом и используйте выбор позже
- создать таблицу в качестве во-первых, и использовать добавить первичный ключ позже
но не как создать таблицу в качестве С первичный ключ - то, чего вы хотели.
Если вы хотите создать новую таблицу с той же структурой таблицы другой таблицы, вы можете сделать это в одном операторе (как создание новой таблицы, так и установка первичного ключа) следующим образом:
create table mytable_clone (like mytable including defaults including constraints including indexes);
ну в mysql, оба возможно в одной команде
команда
create table new_tbl (PRIMARY KEY(`id`)) as select * from old_tbl;
здесь id
является столбцом с первичным ключом old_tbl
сделано...
вы можете сделать так
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;