在oracle中将表创建为select语句主键

问题描述 投票:0回答:1

是否可以将选择创建表时的主键指定为select语句?我的目的是在创建表上包含主键声明,而不在创建后修改表。

CREATE TABLE suppliers
AS (SELECT company_id, address, city, state, zip
  FROM companies
  WHERE company_id < 5000);
oracle plsql plsqldeveloper sql-scripts
1个回答
1
投票

是的,有可能。您需要明确指定列:

CREATE TABLE suppliers (
    company_id primary key, 
    address, 
    city, 
    state, 
    zip
) 
AS 
  SELECT company_id, address, city, state, zip
    FROM companies
    WHERE company_id < 5000;

Here is a demo

Note:在这种情况下,受约束的主键将被赋予系统生成的名称。如果要使用自定义名称,则必须在执行(未指定alter table suppliers add constraint <<custom constraint name>> primary key(<<primary_key_column_name>>)primary key DDL语句后执行CREATE TABLE suppliers..

© www.soinside.com 2019 - 2024. All rights reserved.