0

既存のテーブルからテーブルを作成しようとしています。制約とは別に渡される他の制約は何NOT NULLですか? また、新しいテーブルに渡される他の属性/機能は何ですか?

新しいテーブルを作成するために使用するクエリは次のとおりです。

create table sales_emp
as
select * from emp;
4

1 に答える 1

3

次の情報は公式マニュアルに記載されています(すべての強調点は私のものです)。

Oracle Databaseは、副問合せからデータ型と長さを導出します。Oracle Databaseは、整合性制約およびその他の列と表の属性について次のルールに従います。

  • 副問合せが列を含む式ではなく列を選択する場合、選択した表の対応する列に対して明示的に作成された制約は、Oracle Databaseによって新しい表の列に対して自動的に定義されます。制約に違反する行がある場合、データベースはテーブルを作成せず、エラーを返します。NOT NULL

  • NOT NULL選択した表の列に対してOracle Databaseによって暗黙的に作成された制約(主キーなど)は、新しい表には引き継がれません。

  • さらに、主キー、一意キー、外部キー、チェック制約、パーティション化基準、インデックス、および列のデフォルト値は、新しいテーブルに引き継がれません。

  • 選択したテーブルがパーティション化されている場合、新しいテーブルを同じ方法でパーティション化するか、別の方法でパーティション化するか、またはパーティション化しないかを選択できます。パーティショニングは新しいテーブルに引き継がれません。句のCREATE TABLE前に、ステートメントの一部として必要なパーティションを指定します。AS subquery

于 2012-07-23T09:56:07.890 に答える