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 16 MySQL
正确使用MySQL update语句
May 26 MySQL
新手入门Mysql--sql执行过程
Jun 20 MySQL
MySQL快速插入一亿测试数据
Jun 23 MySQL
SQL实现LeetCode(180.连续的数字)
Aug 04 MySQL
深入解析MySQL索引数据结构
Oct 16 MySQL
解析MySQL索引的作用
Mar 03 MySQL
MySQL慢查询优化解决问题
Mar 17 MySQL
Linux系统下MySQL配置主从分离的步骤
Mar 21 MySQL
mysql的单列多值存储实例详解
Apr 05 MySQL
mysqldump进行数据备份详解
Jul 15 MySQL
MySQL常用慢查询分析工具详解
Aug 14 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
用php获取远程图片并把它保存到本地的代码
2008/04/07 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
PHP strcmp()和strcasecmp()的区别实例
2016/11/05 PHP
php服务器的系统详解
2019/10/12 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
Javascript attachEvent传递参数的办法
2009/12/14 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
Angular 中 select指令用法详解
2016/09/29 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
vue写一个组件
2018/04/09 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
浅谈python下含中文字符串正则表达式的编码问题
2018/12/07 Python
如何更优雅地写python代码
2019/07/02 Python
微信小程序python用户认证的实现
2019/07/29 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
python使用正则来处理各种匹配问题
2019/12/22 Python
基于python实现地址和经纬度转换
2020/05/19 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
Nike瑞士官网:Nike CH
2021/01/18 全球购物
企业员工培训感言
2014/02/26 职场文书
志愿者服务感言
2014/02/27 职场文书
2015年采购部工作总结
2015/04/23 职场文书
2015党建工作简报
2015/07/21 职场文书
Python实现简单的猜单词
2021/06/15 Python