可能重复:
MySQL: How to add a column if it doesn't already exist?
我使用的工具正在运行此查询,但它失败了。我正在尝试帮助调试,但无法弄清楚出了什么问题:
IF EXISTS( SELECT NULL FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'TOWNY_RESIDENTS'
AND table_schema = 'minecraft'
AND column_name != 'town-ranks')
THEN
ALTER TABLE TOWNY_RESIDENTS (ADD
`town-ranks` mediumtext,
`nation-ranks` mediumtext
);
内部选择查询工作正常。似乎if exists语法是错误的,但我无法弄清楚如何。像SO这样的网站上的例子显示了类似的想法...
错误是:
#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 EXISTS( SELECT NULL FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'TOW' at line 1
答案 0 :(得分:0)
ALTER TABLE
不支持MySQL中的IF EXISTS
。您可以运行ALTER TABLE
语句并忽略产生的错误。
另一个选择是在information_schema上执行SELECT INTO OUTFILE
以在必要时生成ALTER TABLE
语句,然后获取该文件以执行ALTER TABLE
语句。