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中出现乱码问题的终极解决宝典
May 26 MySQL
MySql存储过程之逻辑判断和条件控制
May 26 MySQL
你知道哪几种MYSQL的连接查询
Jun 03 MySQL
MySQL 亿级数据导入导出及迁移笔记
Jun 18 MySQL
MySQL的安装与配置详细教程
Jun 26 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
Dec 06 MySQL
MySQL七大JOIN的具体使用
Feb 28 MySQL
关于MySQL临时表为什么可以重名的问题
Mar 22 MySQL
mysql 获取相邻数据项
May 11 MySQL
MySQL 原理优化之Group By的优化技巧
Aug 14 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完整的日历类(CLASS)
2006/11/27 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
php如何获取文件的扩展名
2015/10/28 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
jquery创建div 实现代码
2009/04/27 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
socket.io学习教程之深入学习篇(三)
2017/04/29 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
深入理解Promise.all
2018/08/08 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
微信小程序利用云函数获取手机号码
2019/12/17 Javascript
Python中为什么要用self探讨
2015/04/14 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
对numpy中向量式三目运算符详解
2018/10/31 Python
python根据时间获取周数代码实例
2019/09/30 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
python计算无向图节点度的实例代码
2019/11/22 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
事务机电主管工作职责
2014/02/25 职场文书
2014离婚协议书范文两篇
2014/09/15 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
小学中等生评语
2014/12/29 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏