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 Router的安装部署
Apr 24 MySQL
MySQL Router实现MySQL的读写分离的方法
May 27 MySQL
MySQL 时间类型的选择
Jun 05 MySQL
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
Jun 18 MySQL
MySQL令人大跌眼镜的隐式转换
Aug 23 MySQL
一文带你探究MySQL中的NULL
Nov 11 MySQL
MySql分区类型及创建分区的方法
Apr 13 MySQL
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
Apr 18 MySQL
MySQL安装失败的原因及解决步骤
Jun 14 MySQL
浅谈MySql update会锁定哪些范围的数据
Jun 25 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 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计算十二星座的函数代码
2012/08/21 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
JS localStorage实现本地缓存的方法
2013/06/22 Javascript
Jquery显示、隐藏元素以及添加删除样式
2013/08/09 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
JS实现点击颜色块切换指定区域背景颜色的方法
2015/02/25 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
2015/10/22 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
js学使用setTimeout实现轮循动画
2017/07/17 Javascript
vue中component组件的props使用详解
2017/09/04 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
微信小程序自定义弹出层效果
2020/05/26 Javascript
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python中with及contextlib的用法详解
2017/06/08 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
python如何更新包
2020/06/11 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
加拿大折扣、优惠券和交易网站:WagJag
2018/02/07 全球购物
在线实验室测试:HealthLabs.com
2020/05/03 全球购物
大学生村官典型材料
2014/01/12 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
opencv 分类白天与夜景视频的方法
2021/06/05 Python
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技