在navicat下使用mysql语句批量修改表名的补充

文章讲述了在使用MySQL语句批量修改表名时,如果表名包含中文字符或括号,需要使用反引号(`)来包裹表名以避免语法错误。提供了修正后的SQL代码示例,涉及CONCAT和REPLACE函数,以及信息_schema.TABLES的使用。
摘要由CSDN通过智能技术生成

之前搜索“mysql语句批量修改表名”的时候大多数人给的代码就是

SELECT

CONCAT(

'ALTER TABLE ',

table_name,

' RENAME TO ',

REPLACE (

table_name,

'a0001', -- 要替换的字符串

'a001' -- 替换为新的字符串

),

';'

)

FROM

information_schema. TABLES

WHERE

TABLE_SCHEMA = 'byd2' -- 数据库名称

AND table_name LIKE '%a0001%'; -- 匹配表(匹配表名以包含a0001的表)

这里CONCAT()是拼接函数,REPLACE()是替换函数,源代码复制使用的时候一直报错,说语句不对。后来发现当表名中含有中文字符或者括号()时,要特殊处理一下。

比如 原来修改表名的mysql语句:

alter table 原表名 rename to 新表名;

当表名含有中文字符或者括号()时改为

alter table `原表名` rename to `新表名`;

新加的这个符号和编程语言里面英文单引号类似

所以改了一下原代码

SELECT

CONCAT(

'ALTER TABLE `',

table_name,

'` RENAME TO `',

REPLACE (

table_name,

'a0001', -- 要替换的字符串

'a001' -- 替换为新的字符串

),

'`;'

)

FROM

information_schema. TABLES

WHERE

TABLE_SCHEMA = 'byd2' -- 数据库名称

AND table_name LIKE '%a0001%'; -- 匹配表(匹配表名以包含a0001的表)

小改。这是那位大佬的源代码链接http://t.csdn.cn/Lo50W

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值