[解決済み] MySQL、SQLでテーブルにカラムが存在するかどうかを確認する
2022-05-11 05:59:50
質問
MySQL の特定のテーブルに特定のカラムがあるかどうかをチェックし、ない場合は作成するクエリを作成しようとしています。そうでなければ何もしません。これは、どのエンタープライズクラスのデータベースでも本当に簡単な手順ですが、MySQL は例外のようです。
私は次のようなことを考えました。
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME='prefix_topic' AND column_name='topic_last_update')
BEGIN
ALTER TABLE `prefix_topic` ADD `topic_last_update` DATETIME NOT NULL;
UPDATE `prefix_topic` SET `topic_last_update` = `topic_date_add`;
END;
はうまくいくのですが、ひどく失敗します。何か方法があるのでしょうか?
どのように解決するのですか?
これは私のためによく動作します。
SHOW COLUMNS FROM `table` LIKE 'fieldname';
PHPの場合、次のようになります。
$result = mysql_query("SHOW COLUMNS FROM `table` LIKE 'fieldname'");
$exists = (mysql_num_rows($result))?TRUE:FALSE;
関連
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
[解決済み】文字列からuniqueidentifierに変換する際に変換に失敗する - 2つのGUIDの場合
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] MySQLで'insert if not exists'を行うにはどうしたらいいですか?
-
[解決済み] MySQL で特定のカラム名を持つすべてのテーブルを見つけるにはどうすればよいですか?
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?
-
[解決済み】MySQLのDatetimeカラムにデフォルト値を設定する方法とは?
-
[解決済み】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のselect、distinct、limitの使い方
-
mysqlのデータ圧縮性能比較 詳細
-
MysqlからElasticsearchにデータを同期させる方法を説明します。
-
MySQL XAが分散型トランザクションを実装する方法を1記事にまとめました。
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
SQLステートメントエラーです。オペランドには 1 つのカラムを含める必要があります [括弧を追加せずに複数のフィールドをクエリする
-
mysql がエラーを報告します。不明な文字セットです。'utf8mb4'
-
[解決済み] 1つのSQLクエリで複数のカウントを取得する方法は?
-
[解決済み] どのトランザクションが「テーブルメタデータのロック待ち」状態を引き起こしているかを確認するにはどうすればよいですか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?