sql >> データベース >  >> RDS >> Mysql

MySQL DROP COLUMN

    MySQLのデータベーステーブルから列を削除する必要がある場合があります。これは、MySQLDROPCOLUMNコマンドを使用して簡単に実行できます。 MySQLのテーブルから列を削除する方法は次のとおりです。

    MySQLのテーブルから列を削除する方法

    MySQLのテーブルから列を削除する手順は次のとおりです。 MySQL DROP COLUMNクエリを使用して、テーブルから既存の列を削除します。

    DROPCOLUMNステートメントの構文は次のとおりです。

    ALTER TABLE table_name
    DROP COLUMN column_name;
    

    上記のステートメントでは、ALTER TABLE句で、列を削除するテーブルについて言及する必要があります。次に、DROPCOLUMN句で列名を指定します。

    上記のDROPCOLUMNを使用する代わりに、DROPのみを使用できます。

    テーブルから複数の列を削除する場合は、同じステートメントの個別のDROPCOLUMN句でそれらに言及します。

    ALTER TABLE table_name
    DROP COLUMN column1,
    DROP COLUMN column2,
    DROP COLUMN column3;
    

    テーブルから列を削除すると、この列を参照するすべてのストアドプロシージャ、ビュー、およびトリガーが無効になります。それらを再び機能させるには、手動で更新する必要があります。インデックスを使用して列を削除することもできますが、列を削除するとインデックスは無効になります。

    ボーナスリード:MySQL DROP TABLE

    MySQLDROPCOLUMNの例

    次の表があるとします注文

    mysql> create table orders(order_date date, 
           sale int, 
           product_id int, 
           category varchar(255));
    

    列を削除したいとしますproduct_id

    mysql> alter table orders drop column product_id;
    
    mysql> describe orders;
    +------------+--------------+------+-----+---------+-------+
    | Field      | Type         | Null | Key | Default | Extra |
    +------------+--------------+------+-----+---------+-------+
    | order_date | date         | YES  |     | NULL    |       |
    | sale       | int(11)      | YES  |     | NULL    |       |
    | category   | varchar(255) | YES  |     | NULL    |       |
    +------------+--------------+------+-----+---------+-------+
    

    ボーナスリード:MySQLで今日からレコードを取得する方法

    MySQLDROP複数列

    複数の列の販売とカテゴリを削除するとします。 MySQLのテーブルから複数の列を削除するMySQLDROPCOLUMNステートメントは次のとおりです

    mysql> alter table orders
         drop column sale,
         drop column category;
    
    mysql> describe orders;
    +------------+------+------+-----+---------+-------+
    | Field      | Type | Null | Key | Default | Extra |
    +------------+------+------+-----+---------+-------+
    | order_date | date | YES  |     | NULL    |       |
    +------------+------+------+-----+---------+-------+
    

    ボーナスリード:MySQLで過去7日間のレコードを取得する方法

    外部キーを使用したMySQLDROPCOLUMN

    外部キーを使用してCOLUMNを直接ドロップしようとすると、MySQLはエラーをスローします。次のテーブルがあるとします

    mysql> create table orders3(id int auto_increment primary key,category_id int);
    
    mysql> create table categories(id int auto_increment primary key,name varchar(255));
    
    mysql> ALTER TABLE orders3
         ADD CONSTRAINT fk_cat
         FOREIGN KEY (category_id)
         REFERENCES categories(id);
    

    ボーナスリード:MySQLで2つの日付の間のレコードを取得する方法

    上記の例では、orders3の外部キーcategory_idは、categoriesテーブルの主キーID列を参照しています。削除しようとするとエラーになります。

    mysql> alter table orders3 drop column category_id;
    ERROR 1553 (HY000): Cannot drop index 'fk_cat': needed in a foreign key constraint
    

    したがって、最初に外部キー制約を削除してから、MySQL DROP COLUMN

    を使用する必要があります。
    mysql> alter table orders3 drop foreign key fk_cat;
    
    mysql> alter table orders3 drop column category_id;
    
    mysql> describe orders3;
    +-------+---------+------+-----+---------+----------------+
    | Field | Type    | Null | Key | Default | Extra          |
    +-------+---------+------+-----+---------+----------------+
    | id    | int(11) | NO   | PRI | NULL    | auto_increment |
    +-------+---------+------+-----+---------+----------------+
    

    Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。

    1. Trunc()がPostgreSQLでどのように機能するか

    2. テーブルの列を削除する方法

    3. Access2016でデータベースを自動的に圧縮および修復する方法

    4. Oracleでクエリ結果をコンマ区切りリストとして返す