2012-01-27 3 views
0

列が存在しない場合は追加しようとしています。私の質問は次のとおりですSQLテーブルに存在する場合は列を追加し、それを設定します

IF NOT EXISTS (
    SELECT * 
     FROM information_schema.COLUMNS 
      WHERE 
       TABLE_SCHEMA = 'table_name' 
      AND TABLE_NAME = 'adapter' 
      AND COLUMN_NAME = 'adapter_ip' 
) 
BEGIN 
    ALTER TABLE `adapter` ADD `adapter_ip` varchar(15) NOT NULL DEFAULT '192.168.194.57'; 
    UPDATE `adapter` SET `adapter_ip` = '192.168.194.57'; 
END; 

ただし、エラーが発生するたびに私は間違って何をしているのですか?私はテストし、私が実行する場合

SELECT * 
     FROM information_schema.COLUMNS 
      WHERE 
       TABLE_SCHEMA = 'table_name' 
      AND TABLE_NAME = 'adapter' 
      AND COLUMN_NAME = 'adapter_ip' 

それ自体が動作します。 if文に入れるとすぐに、1行目で構文が間違っているとエラーが出ます。そのため私はBEGINTHENに置き換えようとしましたが、それもうまくいきませんでした。これを引き起こしているのは何ですか?誰にも助けてくれてありがとう。

+0

エラーは何ですか? – JonH

+0

@JonH問題は、BEGINをTHENとENDで置き換えようとしたことですが、1行目に間違った構文を記述する際にエラーが発生するたびに、理由を理解できないようです。 – Quillion

答えて