如果表格已经存在,我想更改一个表并向其添加一列。所以我填充了一个变量@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行
我做错了什么?
答案 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;
希望它有所帮助。