这个DROP TABLE IF EXISTS
可以工作,但RENAME TABLE IF EXISTS
不能工作,这太糟糕了。
有人能为这个问题提供解决方案吗?
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 video_top_day TO video_top_day_for_delete' at line 1
查询:
RENAME TABLE IF EXISTS video_top_day TO video_top_day_for_delete
发布于 2012-02-14 23:52:30
我已经成功地执行了一段代码,该代码在表不存在时始终有效且不会产生错误:
SELECT Count(*)
INTO @exists
FROM information_schema.tables
WHERE table_schema = [DATABASE_NAME]
AND table_type = 'BASE TABLE'
AND table_name = 'video_top_day';
SET @query = If(@exists>0,
'RENAME TABLE video_top_day TO video_top_day_for_delete',
'SELECT \'nothing to rename\' status');
PREPARE stmt FROM @query;
EXECUTE stmt;
当您不想手动替换[DATABASE NAME]
时,可以使用以下变量
SELECT DATABASE() INTO @db_name FROM DUAL;
发布于 2012-02-14 23:34:40
首先创建表IF NOT EXISTS
。然后RENAME
它,所以它将永远存在!
否则,重命名该表,如果该表不存在,则处理该错误。
这是显而易见的,但它是有效的。
发布于 2012-02-14 23:33:46
目前还没有正式的解决方案。已经有feature request在2004年提交,从未关闭
https://stackoverflow.com/questions/9279619
复制相似问题