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 06 MySQL
MySQL优化之如何写出高质量sql语句
May 17 MySQL
你知道哪几种MYSQL的连接查询
Jun 03 MySQL
MySQL中存储时间的最佳实践指南
Jul 01 MySQL
QT连接MYSQL数据库的详细步骤
Jul 07 MySQL
mysql5.6主从搭建以及不同步问题详解
Dec 04 MySQL
MySQL慢查询优化解决问题
Mar 17 MySQL
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
Apr 09 MySQL
MySQL 执行数据库更新update操作的时候数据库卡死了
May 02 MySQL
mysql字段为NULL索引是否会失效实例详解
May 30 MySQL
MySQL外键约束(Foreign Key)案例详解
Jun 28 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
怎么在Windows系统中搭建php环境
2013/08/31 PHP
PHP小技巧之JS和CSS优化工具Minify的使用方法
2014/05/19 PHP
asp 取文本框名称代码
2008/12/02 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
JS原型对象的创建方法详解
2016/06/16 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
js实现常见的工具条效果
2017/03/02 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
Python切片知识解析
2016/03/06 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
python下载图片实现方法(超简单)
2017/07/21 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
python字典的遍历3种方法详解
2019/08/10 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
J2EE模式面试题
2016/10/11 面试题
棉花姑娘教学反思
2014/02/15 职场文书
教师产假请假条范文
2014/04/10 职场文书
给公司的建议书范文
2014/05/13 职场文书
技能比武方案
2014/05/21 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
黄石寨导游词
2015/02/05 职场文书
销售员岗位职责
2015/02/10 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
Python如何利用正则表达式爬取网页信息及图片
2021/04/17 Python