OHL*_*ÁLÁ 1 mysql mysql-error-1064
如果不存在,我怎么能想添加一个列.我试过这段代码:
IF EXISTS( SELECT NULL
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'forwind.measuringdata_fino_10_00000000'
AND table_schema = 'forwind'
AND column_name != 'F1_USA(40)_u') THEN
ALTER TABLE `forwind.measuringdata_fino_10_00000000` ADD `F1_USA(40)_u` FLOAT NOT NULL default '0';
END IF;
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
错误代码:1064您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在'IF EXISTS附近使用正确的语法(SELECT NULL FROM INFORMATION_SCHEMA.COLUMNS
如果有人知道其他解决方案,对我有好处!
MySQL不支持这样的匿名IF语句.
您有至少3个选项来解决此问题:
1)只需运行该ALTER TABLE语句并Duplicate column name在列已存在时忽略错误.如果您在脚本中执行一堆DDL,则可以使用它mysql -f来忽略错误并继续运行.2)使用脚本语言(如bash,python,perl等)检查列是否存在,然后添加它(如果它尚不存在).3)在MySQL中创建一个存储过程以检查列是否存在,然后添加它(如果它尚不存在).
PS另外,我建议不要在括号中添加括号,因为这会强制您在每次引用时引用列名.