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之DML语言
Apr 05 MySQL
MySQL表的增删改查基础教程
Apr 07 MySQL
mysql联合索引的使用规则
Jun 23 MySQL
浅谈MySQL之浅入深出页原理
Jun 23 MySQL
SQL实现LeetCode(177.第N高薪水)
Aug 04 MySQL
mysql 索引合并的使用
Aug 30 MySQL
Mysql分析设计表主键为何不用uuid
Mar 31 MySQL
MySQL数据库如何使用Shell进行连接
Apr 12 MySQL
讲解MySQL增删改操作
May 06 MySQL
Mysql InnoDB 的内存逻辑架构
May 06 MySQL
MySQL 自动填充 create_time 和 update_time
May 20 MySQL
MySql数据库触发器使用教程
Jun 01 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获取系统变量方法小结
2015/05/29 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
js资料prototype 属性
2007/03/13 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
vue实现树形菜单效果
2018/03/19 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
2019/09/26 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
javascript自定义加载loading效果
2020/09/15 Javascript
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
Python Mysql数据库操作 Perl操作Mysql数据库
2009/01/12 Python
Python创建日历实例
2014/08/21 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
Python如何快速实现分布式任务
2017/07/06 Python
python版百度语音识别功能
2019/07/09 Python
详解PyTorch中Tensor的高阶操作
2019/08/18 Python
python通过实例讲解反射机制
2019/10/17 Python
python matplotlib拟合直线的实现
2019/11/19 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
生产车间主任的个人自我鉴定
2013/10/25 职场文书
勤俭节约倡议书
2014/04/14 职场文书
作风大整顿心得体会
2014/09/10 职场文书
接待员岗位职责范本
2015/04/15 职场文书