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 相关文章推荐
仅用一句SQL更新整张表的涨跌幅、涨跌率的解决方案
May 06 MySQL
MySQL时间设置注意事项的深入总结
May 06 MySQL
MySQL优化之如何写出高质量sql语句
May 17 MySQL
详解MySQL连接挂死的原因
May 18 MySQL
mysql定时自动备份数据库的方法步骤
Jul 07 MySQL
MySQL8.0升级的踩坑历险记
Nov 01 MySQL
MySQL笔记 —SQL运算符
Jan 18 MySQL
一文了解MySQL二级索引的查询过程
Feb 24 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
MySQL数据库查询之多表查询总结
Aug 05 MySQL
MySQL中LAG()函数和LEAD()函数的使用
Aug 14 MySQL
SQL Server数据库的三种创建方法汇总
May 08 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使用cookie实现记住登录状态
2015/04/27 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
2018/07/27 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
Python对CSV、Excel、txt、dat文件的处理
2018/09/18 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
详解tensorflow之过拟合问题实战
2020/11/01 Python
详解Python利用configparser对配置文件进行读写操作
2020/11/03 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
人力资源专员自我评价怎么写
2013/09/19 职场文书
毕业生求职的求职信
2013/12/05 职场文书
学生会部长竞聘书
2014/03/31 职场文书
励志演讲稿200字
2014/08/21 职场文书
六查六看心得体会
2014/10/14 职场文书
群众路线调研报告范文
2014/11/03 职场文书
清明扫墓感想
2015/08/11 职场文书
关于JavaScript回调函数的深入理解
2021/06/27 Javascript
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技