Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベースの作成 » データベース・オブジェクトの使用 » テーブルの操作

 

テーブルの削除

この項では、データベースからテーブルを削除する方法について説明します。Sybase Central または Interactive SQL のいずれかを使用して、このタスクを実行できます。Interactive SQL では、テーブルの削除をテーブルのドロップとも呼びます。

SQL Remote パブリケーションでアーティクルとして使用されているテーブルは削除できません。Sybase Central でこれを実行しようとすると、エラーが発生します。また、従属ビューを持つテーブルを削除するときは、以降の項で説明するように、追加の手順がある場合があります。

テーブルの削除とビューの依存性

テーブルを削除すると、その定義がデータベースから削除されます。従属した通常のビューが存在する場合、データベース・サーバはテーブル変更を実行後にそれらを再コンパイルしてもう一度有効にしようとします。失敗した場合は、テーブルの削除によってビューの定義が無効になったことが原因と考えられます。この場合は、ビュー定義を訂正する必要があります。通常のビューの変更を参照してください。

従属したマテリアライズド・ビューが存在する場合、その定義は有効でなくなっているため、以降のリフレッシュは失敗します。この場合は、マテリアライズド・ビューを削除してから、有効な定義を使用してもう一度作成する必要があります。マテリアライズド・ビューの作成を参照してください。

テーブルを変更する前に、sa_dependent_views システム・プロシージャを使用して、そのテーブルに依存するビューがあるかどうかを判断できます。sa_dependent_views システム・プロシージャを参照してください。

テーブルの削除によってビューの依存性にどのような影響があるかについては、ビューの依存性を参照してください。

♦  テーブルを削除するには、次の手順に従います (Sybase Central の場合)。
  1. DBA 権限のあるユーザとして、またはテーブルの所有者として、データベースに接続します。

  2. マテリアライズド・ビューが依存するテーブルを削除している場合は、各マテリアライズド・ビューを無効にします。

    1. 左ウィンドウ枠で、[ビュー] をダブルクリックします。

    2. マテリアライズド・ビューを右クリックして、[無効にする] を選択します。

  3. [テーブル] をダブルクリックします。

  4. テーブルを右クリックして、[削除] を選択します。

  5. [はい] をクリックします。

♦  テーブルを削除するには、次の手順に従います (SQL の場合)。
  1. DBA 権限のあるユーザとして、またはテーブルの所有者として、データベースに接続します。

  2. マテリアライズド・ビューが依存するテーブルを削除している場合は、ALTER MATERIALIZED VIEW ... DISABLE 文を使用して各マテリアライズド・ビューを無効にします。

  3. DROP TABLE 文を実行します。

次に示す DROP TABLE コマンドは、Skills テーブルからすべてのレコードを削除し、データベースから Skills テーブルの定義を削除します。

DROP TABLE Skills;

CREATE 文と同様、DROP 文はテーブルを削除する前と後に COMMIT 文を自動的に実行します。したがって、最後に COMMIT または ROLLBACK を実行した後の変更はすべて確定されます。DROP 文では、テーブル上のインデックスもすべて削除されます。DROP TABLE 文を参照してください。