MYSQL批量修改表前缀与表名sql语句
修改表名
ALTER TABLE 原表名 RENAME TO 新表名;
一句SQL语句只能修改一张表
show tables;
1.
SELECT
CONCAT(
'ALTER TABLE ',
table_name,
' RENAME TO db_',
substring(table_name, ),
';'
)
FROM
information_schema. TABLES
WHERE
table_name LIKE 'ct%';
批量复制一下到Notepad++中,只保留sql语句,再复制到mysql中执行
2.php脚本批量修改mysql数据库表前缀
<?php
//设置好相关信息
$dbserver='localhost';//连接的服务器一般为localhost
$dbname='corethink';//数据库名
$dbuser='root';//数据库用户名
$dbpassword='root';//数据库密码
$old_prefix='ct_';//数据库的前缀
$new_prefix='new_';//数据库的前缀修改为
if ( !is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) ){
return false;
} if (!mysql_connect($dbserver, $dbuser, $dbpassword)) {
print 'Could not connect to mysql';
exit;
}
//取得数据库内所有的表名
$result = mysql_list_tables($dbname);
if (!$result){
print "DB Error, could not list tablesn";
print 'MySQL Error: ' . mysql_error();
exit;
}
//把表名存进$data
while ($row = mysql_fetch_row($result)) {
$data[] = $row[];
}
//过滤要修改前缀的表名
foreach($data as $k => $v){
$preg = preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i", $v, $v1);
if($preg){
$tab_name[$k] = $v1[];
}
}
if($preg){
foreach($tab_name as $k => $v){
$sql = 'RENAME TABLE `'.$old_prefix.$v.'` TO `'.$new_prefix.$v.'`';
mysql_query($sql);
}
print 数据表前缀:.$old_prefix."<br>".已经修改为:.$new_prefix."<br>";
}else{ print 您的数据库表的前缀.$old_prefix.输入错误。请检查相关的数据库表的前缀;
if ( mysql_free_result($result) ){
return true;
}
}
?>
由于mysql_list_tables方法已经过时,运行以上程序时会给出方法过时的提示信息
Deprecated: Function mysql_list_tables() is deprecated in … on line xxx
在php.ini中设置error_reporting,不显示方法过时提示信息
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
SELECT
CONCAT(
'drop table ',
table_name,
';'
)
FROM
information_schema. TABLES
WHERE
table_name LIKE 'uc_%';
执行查询,会自动生成出 drop table table_name这样的SQL语句
MYSQL批量修改表前缀与表名sql语句的更多相关文章
- MySQL 批量删除相同前缀的表
sql 命令批量生成drop命令 需要批量删除表,而MySQL又没有提供相关的功能:一般我们建表也都会使用相同前缀,那么,在不使用工具的情况下可以选择使用sql生成批量删除命令: 如删除以 " ...
- MySQL批量删除指定前缀表
Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE ...
- Mysql批量删除和修改某个前缀的表
1.批量删除某个前缀的表名,首先选出这些个表. select concat( 'drop table ', table_name, ';' ) from information_schema.tabl ...
- ABP框架源码学习之修改默认数据库表前缀或表名称
ABP框架源码学习之修改默认数据库表前缀或表名称 1,源码 namespace Abp.Zero.EntityFramework { /// <summary> /// Extension ...
- SQL语句大小写是否区分的问题,批量修改整个数据库所有表所有字段大小写
一.实例介绍 SQL语句大小写到底是否区分呢?我们先从下面的这个例子来看一下: 例: --> 创建表,插入数据: declare @maco table (number int,myvalue ...
- sqlserver查询所有表的行数的sql语句
原文:sqlserver查询所有表的行数的sql语句 select object_name(id),rowcnt from sysindexes where indid<2 and object ...
- 从数据库中查询所有表及所有字段的SQL语句
从数据库中查询所有表及所有字段的SQL语句 由于一个小项目的需要,近日完成一个从数据库中查询所有表及所有字段的方法,其实用两条SQL语句就可以完成. Sql Server版:列出当前DB中所有表:se ...
- mysql(1)—— 详解一条sql语句的执行过程
SQL是一套标准,全称结构化查询语言,是用来完成和数据库之间的通信的编程语言,SQL语言是脚本语言,直接运行在数据库上.同时,SQL语句与数据在数据库上的存储方式无关,只是不同的数据库对于同一条SQL ...
- MySQL批量修改相同后缀表名
执行步骤 1.用concat批量生成修改表名的语句 SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO ', ,locate('_postfi ...
随机推荐
- HTML课上小结
HTML翻译为超文本标记语言<标签名>内容</标签名>静态网页动态网页的区别是看是否从数据中提取数据一般网页由几部分组分组成<html>开始标签 <head& ...
- Yii 2.x 多主题 - 多语言 配置
语言:只要在原来模板的位置建立语言目录 多主题:要重新定义模板的根目录
- String类
字符串的功能 A:判断功能 boolean equals(Object obj)//比较对象 boolean eq ...
- Spring在web应用中获得Bean的方法
一:使用ApplicationContext获得Bean 首先新建一个类,该类必须实现ApplicationContextAware接口,改接口有一个方法,public void setApplica ...
- Struts2入门(七)——Struts2的文件上传和下载
一.前言 在之前的随笔之中,我们已经了解Java通过上传组件来实现上传和下载,这次我们来了解Struts2的上传和下载. 注意:文件上传时,我们需要将表单提交方式设置为"POST" ...
- 如何采用easyui tree编写简单角色权限代码
首先每个管理员得对应一个角色: 而角色可以操作多个栏目,这种情况下我们可以采用tree多选的方式: 在页面上js代码: $('#Permission').dialog({ title: '栏目权限', ...
- UICollectionViewCell定制Button
UICollectionViewCell定制Button 效果 特点 1.能够动态设置每行显示的按钮的个数,以及控件的摆放格式 2.实现单选或者多选的功能,实现点击事件 3.自定制按钮的显示样式 用法 ...
- Linux下安装Oracle11g服务器
1.安装环境 Linux服务器:CentOS 64位 Oracle服务器:Oracle11gR2 64位 2.系统要求 Linux安装Oracle系统要求 系统要求 说明 内存 必须高于1G的物理内 ...
- Flash Professional 报错 TypeError: Error #1034: 强制转换类型失败:无法将 xxxx@zzzz 转换为 yyy
通常是因为xxx yyy 两个不同链接名的元件 使用了同一个属性名
- MYSQL基础操作之数据约束与关联查询
一.MYSQL约束 1.默认值约束,当字段没有插入值的时候,mysql自动给该字段分配默认值. 默认值的字段允许为空. 对默认值字段也可以插入null. CREATE TABLE STUDENT( I ...