2010-11-27 9 views

答えて

6

OracleのDDLとDMLの主な違い(技術的な違い)は、DDLはではなく、トランザクションではないため、ロールバックできず、コミットする必要はありません。実際、OracleのDDLは実行前に暗黙のコミットを行います。

他のデータベース(例えばPostgresの、DB2)それはのように、用語「アプリケーション」と「サーバ」(に似たばかりの分類、ですすべての後

DDLとDML間取引に関して違いはありません。データベースサーバ)。操作上、OpenOfficeとOracleは単に「アプリケーション」ですが、それらを異なるカテゴリに分類しています。

+1

Oracle:Oracleでは、トランザクション型ですが、複数文のトランザクションには参加できません。実行前と実行が正常に完了した後に暗黙のコミットがあります。実行中にエラーが発生した場合、Oracleは不完全なDDLをロールバックして、アトミックにします。 –

1

DDL文は、データベース構造、オブジェクト、およびスキーマを定義するために使用されますが、DML文は、スキーマ・オブジェクト内のデータを管理するために使用されます。 Oracleは、セキュリティ権限とオブジェクト可用性(つまり、表/ビューと分離レベルのロック)に従って、各タイプの文を処理します。

また、スキーマ定義は内部マスター表に保持されているため、DDL文は実際にこれらの表に格納されているデータに影響を与え、その意味では「マスターDML」文と見なすことができます。

1

あなたの質問を異なる方法で実装すること「、それがためにDDLとDMLのため必要である理由はそこにある 『になる場合は『NO』、答えは』。

ただし、SQL言語の定義者適切なALTER TABLEコマンドを使用して、列に表を追加する必要があります。このコマンドの副作用は、列がカタログ表に挿入され、すべての列を文書化することです。ストレス副作用

しかし、行iを挿入する根本的な理由はありませんカタログ表はトリガーそのものではありません列追加のため、「専用DDL」の必要性が完全になくなりました。

関連する問題