2017-03-21 8 views
0

MySQLに列がない場合は、どのように追加するのですか?MySQLが存在しない場合は列を追加するエラー

私はこれを試してみましたが、それは、最新のMySQLにはもう動作しません:

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; 

エラー:あなたが実行しようとしている原因というエラーが出ます

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS (
    SELECT 
     NULL 
    FROM 
     INFORMATION_SCHEMA.COLUMNS 
    WHERE 
    ' at line 1 

答えて

2

唯一の理由それは個別に、IFブロックは以下のようなプロシージャブロック内で実行されなければならない。

create procedure usp_addcol 
as 
begin 
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; 
end; 

これでプロシージャを呼び出すことができます。

関連する問題