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

How do you use user variables in Mysql If clause?

我想更改 table 并向其添加一列(如果它尚不存在)。所以我填充了一个变量@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 - 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(@row <1) THEN ALTER TABLE tblname ADD colname INT' at line 1

我做错了什么?

在 MySQL 中,您需要 shell 围绕流程语句,例如 if

围绕它设置一个程序,它将起作用。

您可以使用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;

希望对您有所帮助。