你如何在Mysql If子句中使用用户变量?

时间:2015-01-14 14:46:48

标签: mysql sql database

如果表格已经存在,我想更改一个表并向其添加一列。所以我填充了一个变量@row,如果它,我想改变那样的能力。

SET @row = (SELECT count(*) FROM information_schema.COLUMNS WHERE TABLE_NAME='tblname' AND COLUMN_NAME='colname' and table_schema='dbname');   
IF(@row <1) THEN 
   ALTER TABLE tblname ADD colname INT;  
END IF;

但是我收到语法错误

  

#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法       靠近&#39; IF(@row&lt; 1)THEN ALTER TABLE tblname ADD colname INT&#39;在第1行

我做错了什么?

2 个答案:

答案 0 :(得分:1)

在MySQL中,你需要一个围绕流程语句的 shell ,如if

围绕它做一个程序,它会起作用。

答案 1 :(得分:0)

您可以使用prepared statements

IF (@row <1) THEN 
  SET @lSQL = "ALTER TABLE tblname ADD colname INT";
  PREPARE stmt FROM @lSQL;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;
END IF;

希望它有所帮助。