判断表是否存在,存在就重命名的sql语句怎么写

design321 2013-05-03 04:14:53
我只看到这创建和删除的语句:CREATETABLEIFNOTEXISTS和 drop table if exists

有没有rename table if exists,如果这个表存在就重命名的呀?谢谢
...全文
372 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
design321 2013-05-03
  • 打赏
  • 举报
回复
引用 8 楼 rucypli 的回复:
其实这个表存不存在你直接rename就可以 因为不存在你也rename不了
谢谢回答。这样导入时就报错了,后面的东西都没办法执行
rucypli 2013-05-03
  • 打赏
  • 举报
回复
其实这个表存不存在你直接rename就可以 因为不存在你也rename不了
design321 2013-05-03
  • 打赏
  • 举报
回复
引用 2 楼 wwwwb 的回复:
没有,5。6也没有实现
只能用笨办法了,如果存在,新建一个bak表,把已有的数据写进bak表,再删除表,就等于重命名了。
design321 2013-05-03
  • 打赏
  • 举报
回复
引用 4 楼 WWWWA 的回复:
检查是否已经更名 SET @QUERY = 'RENAME TABLE tble TO tble_new' PREPARE stmt FROM @QUERY; EXECUTE stmt; 提示什么
不好意思,无返回,但是已重命名成功
design321 2013-05-03
  • 打赏
  • 举报
回复
引用 4 楼 WWWWA 的回复:
检查是否已经更名 SET @QUERY = 'RENAME TABLE tble TO tble_new' PREPARE stmt FROM @QUERY; EXECUTE stmt; 提示什么
也是0影响行
WWWWA 2013-05-03
  • 打赏
  • 举报
回复
检查是否已经更名 SET @QUERY = 'RENAME TABLE tble TO tble_new' PREPARE stmt FROM @QUERY; EXECUTE stmt; 提示什么
design321 2013-05-03
  • 打赏
  • 举报
回复
引用 2 楼 wwwwb 的回复:
没有,5。6也没有实现
谢谢,那有相关程序能实现这个功能吗?
SELECT COUNT(*)
INTO @EXISTS
FROM information_schema.TABLES
WHERE table_schema = 'database'

AND table_name = 'tble';

SET @QUERY = IF(@EXISTS>0,
    'RENAME TABLE tble TO tble_new',
    'SELECT \'nothing to rename\' status');

PREPARE stmt FROM @QUERY;

EXECUTE stmt;
也实现不了,影响行总为0
wwwwb 2013-05-03
  • 打赏
  • 举报
回复
没有,5。6也没有实现
ACMAIN_CHM 2013-05-03
  • 打赏
  • 举报
回复
没有。 .

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧