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

ALTERTABLEの前に列が存在するかどうかを確認します--mysql

    mysql制御ステートメント(「IF」など)はストアドプロシージャでのみ機能するため、一時的なステートメントを作成して実行できます。

    DROP PROCEDURE IF EXISTS add_version_to_actor;
    
    DELIMITER $$
    
    CREATE DEFINER=CURRENT_USER PROCEDURE add_version_to_actor ( ) 
    BEGIN
    DECLARE colName TEXT;
    SELECT column_name INTO colName
    FROM information_schema.columns 
    WHERE table_schema = 'connjur'
        AND table_name = 'actor'
    AND column_name = 'version';
    
    IF colName is null THEN 
        ALTER TABLE  actor ADD  version TINYINT NOT NULL DEFAULT  '1' COMMENT  'code version of actor when stored';
    END IF; 
    END$$
    
    DELIMITER ;
    
    CALL add_version_to_actor;
    
    DROP PROCEDURE add_version_to_actor;
    


    1. SQL Serverの挿入、更新、選択の最速の方法

    2. MySQL SIN()関数–MySQLの数値の正弦を返します

    3. SQLAlchemyJSON列-包含クエリを実行する方法

    4. フラスコで自動インクリメントの主キーを作成できません-sqlalchemy