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 11 MySQL
详解MySQL主从复制及读写分离
May 07 MySQL
MySQL表字段时间设置默认值
May 13 MySQL
Mysql 用户权限管理实现
May 25 MySQL
Mysql基础知识点汇总
May 26 MySQL
Mysql中调试存储过程最简单的方法
Jun 30 MySQL
MySQL实例精讲单行函数以及字符数学日期流程控制
Oct 15 MySQL
mysql函数全面总结
Nov 11 MySQL
SQL基础查询和LINQ集成化查询
Jan 18 MySQL
Innodb存储引擎中的后台线程详解
Apr 03 MySQL
MySQL数据库查询进阶之多表查询详解
Apr 08 MySQL
MySQL数据库简介与基本操作
May 30 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_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
复制本贴标题和地址的js代码
2008/07/01 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
javascript面向对象之共享成员属性与方法及prototype关键字用法
2015/01/13 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
Jquery uploadify上传插件使用详解
2016/01/13 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
最常见和最有用的字符串相关的方法详解
2017/02/06 Javascript
Bootstrap 3 进度条的实现
2017/02/22 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
Python中的__SLOTS__属性使用示例
2015/02/18 Python
Python实现网站注册验证码生成类
2017/06/08 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
Python使用configparser库读取配置文件
2020/02/22 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
美国批发零售网站:GearXS
2016/07/26 全球购物
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
Clos19英国:高档香槟、葡萄酒和烈酒在线购物平台
2020/07/10 全球购物
食品工程专业求职信
2014/06/15 职场文书
借款协议书
2014/09/16 职场文书
委托书格式要求
2015/01/28 职场文书
2014年度个人总结范文
2015/03/09 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
python实现socket简单通信的示例代码
2021/04/13 Python
Jupyter notebook 更改文件打开的默认路径操作
2021/05/21 Python
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL
windows server2008 开启端口的实现方法
2022/06/25 Servers