[解決済み] MySQLにカラムが存在する場合、ALTERを使用してカラムを削除する。
2022-12-06 15:28:30
質問
MySQL テーブルにカラムが存在する場合、ALTER を使用してカラムを削除するにはどうすればよいですか?
私は
ALTER TABLE my_table DROP COLUMN my_column
を使うこともできますが
my_column
が存在しない場合、エラーが発生します。条件付きでカラムを削除するための代替構文はありますか?
MySQLバージョン4.0.18を使用しています。
どのように解決するのですか?
MySQLの場合、ありません。 MySQL の機能要求 .
これを許可することは、間違いなく、とにかく本当に悪い考えです。
IF EXISTS
は、(あなたにとって) 未知の構造を持つデータベースに対して破壊的な操作を実行していることを意味します。ローカルで素早く行う作業であれば許容できる状況もあるかもしれませんが、実稼働データに対して (移行などで) このようなステートメントを実行したくなった場合、火遊びをしているようなものです。
しかし、どうしてもと言うのであれば、クライアントで最初に存在を確認するか、エラーをキャッチすることは難しくありません。
MariaDBは10.0.2から以下もサポートしています。
DROP [COLUMN] [IF EXISTS] col_name
すなわち
ALTER TABLE my_table DROP IF EXISTS my_column;
しかし、MySQL のいくつかのフォークのうちの 1 つだけがサポートする非標準的な機能に依存するのは、間違いなく悪い考えです。
関連
-
mysqlのデータ圧縮性能比較 詳細
-
SpringBootのMySQLへの接続は、バックエンドのインターフェイスの操作方法を書き込むためのデータを取得するために
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
MySQLの一般的な分割ライブラリおよび分割テーブルスキームの概要
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] MySQLで特定のカラムの後に複数のカラムを追加する
-
[解決済み】MySQLで正規表現による置換を行うには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ジョイントインデックスのためのmysqlの条件とインデックスが失敗するための条件
-
MySQLデータベースでvarchar型の数値の大きさを比較する方法
-
MySQLのWhereの使用方法について説明します。
-
MySQLインデックスベースストレステストの実装
-
SpringBootのMySQLへの接続は、バックエンドのインターフェイスの操作方法を書き込むためのデータを取得するために
-
[解決済み] 親の行を削除または更新できない:外部キー制約が失敗する
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
'INSERT文はFOREIGN KEY制約「FK_TourismReservation_Users」と競合していました。その
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?