MySQL 使用SQL语句修改表名的实现


Posted in MySQL onApril 07, 2021

MySQL中可以使用rename table这个SQL语句来修改表名。

rename table这个SQL语句来修改表名的基本语法是:

RENAME TABLE <旧表名> TO <新表名>;

我们来把test表修改为test1表。

1、首先查看一下当前数据库中有哪些表。

mysql> show tables;
+-------------------+
| Tables_in_cainiao |
+-------------------+
| test       |
| test2       |
+-------------------+
2 rows in set (0.00 sec)

2、执行重命名操作,把test修改为test1。

mysql> rename table test to test1;
Query OK, 0 rows affected (0.08 sec)

3、再次查看一下结果。

mysql> show tables;
+-------------------+
| Tables_in_cainiao |
+-------------------+
| test1       |
| test2       |
+-------------------+
2 rows in set (0.00 sec)

补充:MySQL中修改表名,表属性名等的操作

alter table 表名 change 原列名 新列名 类型; --修改表的列属性名

alter table 表名 modify 列名 类型 ; --修改表的类类型

alter table 表名 drop 列名; --删除表的某一列

alter table 表名 add 列名 类型;--添加某一列

alter table 表名 rename 新表名; --修改表名

补充:MYSQL批量修改表前缀与表名sql语句

修改表名

ALTER TABLE 原表名 RENAME TO 新表名;

一句SQL语句只能修改一张表

show tables;

MySQL 使用SQL语句修改表名的实现

1.

SELECT
  CONCAT(
    'ALTER TABLE ',
    table_name,
    ' RENAME TO db_',
    substring(table_name, 4),
    ';'
  )
FROM
  information_schema. TABLES
WHERE
  table_name LIKE 'ct%';

MySQL 使用SQL语句修改表名的实现

批量复制一下到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[0];
}
//过滤要修改前缀的表名
foreach($data as $k => $v){
  $preg = preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i", $v, $v1);
  if($preg){
    $tab_name[$k] = $v1[2];
  }
}
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

3.批量删除表

SELECT
  CONCAT(
    'drop table ',
    table_name,
    ';'
  )
FROM
  information_schema. TABLES
WHERE
  table_name LIKE 'uc_%';

执行查询,会自动生成出 drop table table_name这样的SQL语句

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

MySQL 相关文章推荐
MySQL学习总结-基础架构概述
Apr 05 MySQL
mysql升级到5.7时,wordpress导数据报错1067的问题
May 27 MySQL
MYSQL 无法识别中文的永久解决方法
Jun 03 MySQL
Mysql中调试存储过程最简单的方法
Jun 30 MySQL
Mysql实现简易版搜索引擎的示例代码
Aug 30 MySQL
MySQL 服务和数据库管理
Nov 11 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
Jan 22 MySQL
mysql自增长id用完了该怎么办
Feb 12 MySQL
浅谈redis的过期时间设置和过期删除机制
Mar 18 MySQL
Mysql多层子查询示例代码(收藏夹案例)
Mar 31 MySQL
mysql数据库实现设置字段长度
Jun 10 MySQL
MySQL深分页问题解决思路
Dec 24 MySQL
详解Mysql 函数调用优化
Apr 07 #MySQL
MySQL复制问题的三个参数分析
Apr 07 #MySQL
MySQL pt-slave-restart工具的使用简介
Apr 07 #MySQL
MySQL主从复制断开的常用修复方法
Apr 07 #MySQL
MySQL infobright的安装步骤
Apr 07 #MySQL
MySQL表的增删改查基础教程
mysql批量新增和存储的方法实例
Apr 07 #MySQL
You might like
汉字转化为拼音(php版)
2006/10/09 PHP
PHP伪静态页面函数附使用方法
2008/06/20 PHP
第五章 php数组操作
2011/12/30 PHP
php验证session无效的解决方法
2014/11/04 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
python合并文本文件示例
2014/02/07 Python
利用python代码写的12306订票代码
2015/12/20 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
python实现视频分帧效果
2019/05/31 Python
python 操作hive pyhs2方式
2019/12/21 Python
pytorch 实现打印模型的参数值
2019/12/30 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
采购部部长岗位职责
2014/02/06 职场文书
暑期培训班招生方案
2014/08/26 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
领导莅临指导欢迎词
2015/09/30 职场文书