2013-06-29 13 views
0

我儘量讓創造在我的MySQL表不存在柱喜歡這裏的程序: MySQL add column if not existMySQL的程序:如果列不存在,創建它

我的方法:

DELIMITER $$ 
CREATE PROCEDURE Alter_Table(IN _table_name TEXT,IN _column_name TEXT,IN _column_type TEXT) 
BEGIN 
    DECLARE _count INT; 
    SET _count = ( SELECT COUNT(*) 
        FROM INFORMATION_SCHEMA.COLUMNS 
        WHERE TABLE_NAME = _table_name AND 
          COLUMN_NAME = _column_name); 
    IF _count = 0 THEN 
     ALTER TABLE _table_name ADD COLUMN _column_name _column_type; 
    END IF; 
END $$ 
DELIMITER ; 

但是我有一個錯誤:

#1064 - Something is wrong in your syntax obok '_column_type; END IF; END' w linii 9 

任何人都知道爲什麼

回答

1

好吧......我讓它在PHP ...

function alter_table($table_name, $column_name, $column_type) { 
    $result = mysql_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
       WHERE TABLE_NAME = `$table_name` AND COLUMN_NAME = `$column_name`"); 
    if(!$result) { 
     mysql_query("ALTER TABLE `$table_name` 
      ADD COLUMN `$column_name` $column_type"); 
    } 
} 
+0

名稱不能正確parametrised,所以你要麼需要動態地構建查詢或使用PHP的宏替換樣的參數化的,像你一樣這裏。請考慮正式接受您自己的答案,從而將問題標記爲已解決。 –

相關問題