[解決済み] MySQLの カラムが存在しない場合の ALTER TABLE
2023-07-14 16:28:28
質問
このようなコードがあります。
ALTER TABLE `settings`
ADD COLUMN `multi_user` TINYINT(1) NOT NULL DEFAULT 1
そして、このカラムが存在しない場合にのみ、このテーブルを変更したいのです。
いろいろ試しているのですが、何もうまくいきません。
ALTER TABLE `settings`
ADD COLUMN IF NOT EXISTS `multi_user` TINYINT(1) NOT NULL DEFAULT 1
プロシージャ付き。
DELIMITER $$
CREATE PROCEDURE Alter_Table()
BEGIN
DECLARE _count INT;
SET _count = ( SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'settings' AND
COLUMN_NAME = 'multi_user');
IF _count = 0 THEN
ALTER TABLE `settings` ADD COLUMN `multi_user` TINYINT(1) NOT NULL DEFAULT 1
END IF;
END $$
DELIMITER ;
END IFでエラーになり、ENDでエラーになり、1でエラーになりました。
できるだけシンプルにするにはどうしたらいいでしょうか?
どのように解決するのですか?
ストアドプロシージャで以下を使用します。
IF NOT EXISTS( SELECT NULL
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tablename'
AND table_schema = 'db_name'
AND column_name = 'columnname') THEN
ALTER TABLE `TableName` ADD `ColumnName` int(1) NOT NULL default '0';
END IF;
関連
-
SpringBootのMySQLへの接続は、バックエンドのインターフェイスの操作方法を書き込むためのデータを取得するために
-
MySQLの悲観的ロックと楽観的ロックの実装スキーム
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] カラムの変更:NULLをNOT NULLに変更する
-
[解決済み] MySQLテーブルへの挿入または存在する場合の更新
-
[解決済み] 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のLike演算子に関する詳細
-
Mysqlデータベースの手動および定期的なバックアップ手順
-
[解決済み】MySQLで「すべての派生テーブルは独自のエイリアスを持つ必要があります」というエラーは何ですか?
-
[解決済み】MySQL エラー 1093 - FROM 句で更新のターゲット テーブルを指定できません。
-
mysql5.7のインストールと、無料・長期利用を目的としたNavicateの導入プロセスについて
-
MySQLの一般的な分割ライブラリおよび分割テーブルスキームの概要
-
Mysqlデータベースへのリンク時にpymysqlがConnection refusedエラーを報告する
-
MySQLの起動エラー:ERROR 2003 (HY000)。localhost'上のMySQLサーバーに接続できない(10061)
-
[解決済み] ブーリアン値を格納するために使用するMySQLデータ型
-
[解決済み] mysql テーブルにカラムが存在しない場合、カラムを追加する。