MySQL に存在する場合は列を削除する

Shraddha Paghdar 2023年6月20日
MySQL に存在する場合は列を削除する

今日の投稿では、MySQL に存在する場合に単一または複数の列を削除する方法を学びます。

MySQL に存在する場合は列を削除する

表では、列は、テキスト、数値、およびグラフィックスを含めることができるセルの行です。 テーブルの行ごとに、値が各列に格納されます。

テーブルから単一または多数の列を削除したい場合があります。 テーブルの列は、MySQL ALTER TABLE コマンドを使用して追加、変更、削除/削除できます。

列がテーブルから削除されると、それらが含まれていたすべてのインデックスからも削除されます。 インデックスを構成するすべての列が削除されると、インデックスも消去されます。

IF EXISTS 句は、データベース、テーブル、およびビューを削除するためにのみ使用されます。 IF EXISTS を使用する場合、削除しようとするオブジェクトが存在しない場合、MySQL がエンティティの不在を認識して警告を送信するとすぐに実行が中断されます。

システム スキーマは、MySQL で使用されるスキーマです。 これには、実行中の MySQL サーバーが必要とするデータを含むテーブルと列が含まれます。

MySQL スキーマは、一般的な操作用のシステム テーブルと、データベース アイテムのメタデータを格納するためのデータ ディクショナリ テーブルに大別されます。 COLUMNS テーブルには、テーブルの列に関する詳細が含まれています。

構文:

DROP COLUMN column_name ON table_name;
ALTER TABLE table_name DROP COLUMN column_name;
ALTER TABLE table_name DROP COLUMN column_name_1, DROP COLUMN column_name_2;
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = table_name AND COLUMN_NAME = column_name

ここで、column_name は削除する列の名前で、table_name は列を削除するテーブルの名前です。 DROP COLUMN 句の COLUMN という用語はオプションであるため、次の短いステートメントを使用できます。

ALTER TABLE table_name DROP column_name;

最後から 2 番目のフレーズは、操作をコンマで区切ると、単一の ALTER TABLE クエリで多数のドロップ アクションを実行できることを示しています。

前の概念をさらに理解するために、次の例を検討してください。

DROP COLUMN email ON Employees;
ALTER TABLE Employees DROP COLUMN email;
IF EXISTS (SELECT 1
    FROM   INFORMATION_SCHEMA.COLUMNS
        WHERE  TABLE_NAME = 'Employees'
        AND COLUMN_NAME = 'email')
    BEGIN
        ALTER TABLE Employees
        DROP COLUMN email
    END
GO

上記の例では、Employees テーブルの email 列を削除しています。 これにより、email 列、保存されたすべてのデータ、および関連するすべてのインデックスが削除されます。

email 列が Employees テーブルにあることを確認したい場合は、最後のコマンドを使用します。このコマンドは INFORMATION_SCHEMA から確認し、true が返された場合は削除します。

MySQL と互換性のあるブラウザで上記のコード行を実行します。 次の結果が表示されます。

出力:

Query executed successfully.
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

関連記事 - MySQL Column