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获取所有分类的前N条记录
May 07 MySQL
MySQL 重命名表的操作方法及注意事项
May 21 MySQL
MySQL中出现乱码问题的终极解决宝典
May 26 MySQL
python中的mysql数据库LIKE操作符详解
Jul 01 MySQL
MySQL 8.0 驱动与阿里druid版本兼容问题解决
Jul 01 MySQL
SQL之各种join小结详细讲解
Aug 04 MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 MySQL
mysql使用 not int 子查询隐含陷阱
Apr 12 MySQL
MySQL 数据表操作
May 04 MySQL
解决Mysql报错 Table 'mysql.user' doesn't exist
May 06 MySQL
MySQL的prepare使用以及遇到的bug
May 11 MySQL
mysql数据库如何转移到oracle
Dec 24 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 魔术函数使用说明
2010/02/21 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
运用jQuery定时器的原理实现banner图片切换
2014/10/22 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
微信小程序封装分享与分销功能过程解析
2019/08/13 Javascript
vue瀑布流组件实现上拉加载更多
2020/03/10 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[47:45]DOTA2-DPC中国联赛 正赛 Phoenix vs Dragon BO3 第一场 2月26日
2021/03/11 DOTA
Python的垃圾回收机制深入分析
2014/07/16 Python
python对DICOM图像的读取方法详解
2017/07/17 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
10招!看骨灰级Pythoner玩转Python的方法
2019/04/15 Python
基于Python的PIL库学习详解
2019/05/10 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
基于python tkinter的点名小程序功能的实例代码
2020/08/22 Python
scrapy-splash简单使用详解
2021/02/21 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
Booking.com西班牙:全球酒店预订
2018/03/30 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
信息专业大学生自我评价分享
2014/01/17 职场文书
房屋租赁授权委托书范本
2014/09/20 职场文书
求职信:会计求职的写作技巧
2019/04/24 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
JavaScript 中for/of,for/in 的详细介绍
2021/11/17 Javascript
Oracle 多表查询基本语法实例
2022/04/18 Oracle