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 22 MySQL
my.ini优化mysql数据库性能的十个参数(推荐)
May 26 MySQL
MySql开发之自动同步表结构
May 28 MySQL
安装配置mysql及Navicat prenium的详细流程
Jun 10 MySQL
python中的mysql数据库LIKE操作符详解
Jul 01 MySQL
Mysql binlog日志文件过大的解决
Oct 05 MySQL
MySQL创建表操作命令分享
Mar 25 MySQL
MySQL限制查询和数据排序介绍
Mar 25 MySQL
Golang连接并操作MySQL
Apr 14 MySQL
MySQL 条件查询的常用操作
Apr 28 MySQL
MySQL批量更新不同表中的数据
May 11 MySQL
mysql字段为NULL索引是否会失效实例详解
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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
php封装的mysqli类完整实例
2016/10/18 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
Vue中正确使用jQuery的方法
2017/10/30 jQuery
基于js文件加载优化(详解)
2018/01/03 Javascript
vue加载完成后的回调函数方法
2018/09/07 Javascript
vue仿element实现分页器效果
2018/09/13 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
利用Psyco提升Python运行速度
2014/12/24 Python
python文件绝对路径写法介绍(windows)
2019/12/25 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
Python3开发环境搭建详细教程
2020/06/18 Python
CSS3教程(10):CSS3 HSL声明设置颜色
2009/04/02 HTML / CSS
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
联想英国官网:Lenovo英国
2019/07/17 全球购物
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
岗位职责的含义
2013/11/17 职场文书
财务分析个人的自荐书范文
2013/11/24 职场文书
入党积极分子自我鉴定范文
2014/03/25 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
vue组件vue-esign实现电子签名
2022/04/21 Vue.js