0
可能重复:
MySQL: How to add a column if it doesn't already exist?的MySQL是否存在返回错误
我用的工具是运行此查询,但它的失败。我试图帮助调试,但无法弄清楚什么是错误的:
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
);
内部选择查询工作正常。看来如果存在的语法是错误的,但我不知道如何。在网站上的例子,像这样表现出类似的想法...
的错误是:
#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
是否有任何查询唯一的解决方案来检查?我们可以在不检查的情况下运行alter,或者SHOW COLUMNS并解析字段的输出,但我只是覆盖我的基础。 – helion3 2012-08-07 16:53:03
因为即使这样也行不通:IF NOT EXISTS((SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name ='TOWNY_RESIDENTS'))然后从TOWNY_RESIDENTS中选择1; – helion3 2012-08-07 16:59:33
有几十个mysql线程表明alter table可以正常工作,if存在... – helion3 2012-08-07 17:00:06