HeidiSQL是一款数据库管理工具,它是德国程序员Ansgar Becker和几个Delphi程序员开发的一个开源工具。支持通过多种方式连接管理 MySQL(MariaDB)、MSSQL Server、PostgreSQL数据库,功能强大,完全免费,推荐大家使用。HeidiSQL比起其他客户端工具而言,支持显示库表的索引大小和数据大小,并且支持改库名(是通过移动表来完成)。

官网:https://www.heidisql.com

HeidiSQL特点:

• 连接到多个服务器窗口。

• 可以使用命令行连接到服务器。

• 创建和编辑表格,视图,存储程序,触发器和安排日程。

• 从一台服务器/数据库直接导入数据到另一台服务器/数据库

• 管理用户权限。

• 导入文本文件。

• 为CSV,HTML,XML和SQL导出表行。

• 批量修改表(移动到新DB,改变,整理等)

• 批量插入到表中ASCII或二进制文件。

• 写自定义语法高亮和代码自动完成查询。

• 漂亮的SQL格式化。

• 监视和杀灭客户进程。

• 找到一个所有数据库的所有表的具体文本服务器。

• 在批处理方式优化和修复表。

界面就是这样,具体使用需要大家多多尝试。今天主要说一下使用HeidiSQL来更改库名,其是通过移动表来完成的。MySQL原生是不支持更改库名的,只支持更改表名。但是我们可以借助rename这个更改表的命令来完成快速更改库名,这个方法比把全部数据导出再导入来得更快。

核心操作方法:

1. create database newdb

2. rename olddb.tables to newdb.tables

但是这个命令碰到视图会出错,也不能把旧库中的函数,存储过程,事件移过来,对于这一些,我们可以从旧库中导出这些定义,再导入到新库中。我们不可能一个个去改,得借助脚本。

脚本实现的逻辑思路:

1. 查看要改的新旧库是否存在,来判断是否需要进一步处理。

2. 先用rename把所有的表移到新命名的库中。

3. 导出旧库中的视图,函数,存储过程,事件。

4. 导入新库中。

5. 删除旧库。

而在HeidiSQL中更改库名就是这么实现的,也就避免了我们自己写脚本了。在HeidiSQL界面选择一个库名,右击编辑库,就可以更改库名了。然后就可以看到如下操作过去:

SELECT CONNECTION_ID();

/* 已连接: 线程ID:11 */

/* 字符集: utf8mb4 */

SHOW STATUS;

SHOW VARIABLES;

SHOW DATABASES;

/* 进入会话 "test" */

SELECT `DEFAULT_COLLATION_NAME` FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME`='information_schema';

SHOW TABLE STATUS FROM `information_schema`;

SHOW FUNCTION STATUS WHERE `Db`='information_schema';

SHOW PROCEDURE STATUS WHERE `Db`='information_schema';

SHOW TRIGGERS FROM `information_schema`;

SELECT `DEFAULT_COLLATION_NAME` FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME`='information_schema';

SHOW TABLE STATUS FROM `information_schema`;

SHOW FUNCTION STATUS WHERE `Db`='information_schema';

SHOW PROCEDURE STATUS WHERE `Db`='information_schema';

SHOW TRIGGERS FROM `information_schema`;

SHOW EVENTS FROM `information_schema`;

SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='information_schema';

SELECT `DEFAULT_COLLATION_NAME` FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME`='mysql';

SHOW TABLE STATUS FROM `mysql`;

SHOW FUNCTION STATUS WHERE `Db`='mysql';

SHOW PROCEDURE STATUS WHERE `Db`='mysql';

SHOW TRIGGERS FROM `mysql`;

SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='mysql';

USE `mysql`;

SHOW CREATE TABLE `mysql`.`db`;

SHOW COLLATION;

SHOW ENGINES;

USE `test`;

SELECT `DEFAULT_COLLATION_NAME` FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME`='test';

SHOW TABLE STATUS FROM `test`;

SHOW FUNCTION STATUS WHERE `Db`='test';

SHOW PROCEDURE STATUS WHERE `Db`='test';

SHOW TRIGGERS FROM `test`;

SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='test';

SHOW VARIABLES LIKE 'collation_server';

SHOW CREATE DATABASE `test`;

SELECT `DEFAULT_COLLATION_NAME` FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME`='test';

SHOW TABLE STATUS FROM `test`;

SHOW FUNCTION STATUS WHERE `Db`='test';

SHOW PROCEDURE STATUS WHERE `Db`='test';

SHOW TRIGGERS FROM `test`;

SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='test';

SHOW DATABASES;

CREATE DATABASE `test1` /*!40100 COLLATE 'utf8_general_ci' */;

RENAME TABLE `test`.`user1` TO `test1`.`user1`;

RENAME TABLE `test`.`user2` TO `test1`.`user2`;

RENAME TABLE `test`.`user3` TO `test1`.`user3`;

RENAME TABLE `test`.`user4` TO `test1`.`user4`;

SELECT `DEFAULT_COLLATION_NAME` FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME`='test';

SHOW TABLE STATUS FROM `test`;

SHOW FUNCTION STATUS WHERE `Db`='test';

SHOW PROCEDURE STATUS WHERE `Db`='test';

SHOW TRIGGERS FROM `test`;

SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='test';

DROP DATABASE `test`;

SHOW DATABASES;

/* 进入会话 "test" */

SHOW DATABASES;

/* 进入会话 "test" */

SELECT `DEFAULT_COLLATION_NAME` FROM `information_schema`.`SCHEMATA` WHERE `SCHEMA_NAME`='';

SHOW TABLE STATUS FROM ``;

/* SQL错误(1102):Incorrect database name '' */

SHOW FUNCTION STATUS WHERE `Db`='';

SHOW PROCEDURE STATUS WHERE `Db`='';

SHOW TRIGGERS FROM ``;

/* SQL错误(1102):Incorrect database name '' */

SELECT *, EVENT_SCHEMA AS `Db`, EVENT_NAME AS `Name` FROM information_schema.`EVENTS` WHERE `EVENT_SCHEMA`='';

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

SELECTCONNECTION_ID();

/*已连接:线程ID:11*/

/*字符集:utf8mb4*/

SHOWSTATUS;

SHOWVARIABLES;

SHOWDATABASES;

/*进入会话"test"*/

SELECT`DEFAULT_COLLATION_NAME`FROM`information_schema`.`SCHEMATA`WHERE`SCHEMA_NAME`='information_schema';

SHOWTABLESTATUSFROM`information_schema`;

SHOWFUNCTIONSTATUSWHERE`Db`='information_schema';

SHOWPROCEDURESTATUSWHERE`Db`='information_schema';

SHOWTRIGGERSFROM`information_schema`;

SELECT`DEFAULT_COLLATION_NAME`FROM`information_schema`.`SCHEMATA`WHERE`SCHEMA_NAME`='information_schema';

SHOWTABLESTATUSFROM`information_schema`;

SHOWFUNCTIONSTATUSWHERE`Db`='information_schema';

SHOWPROCEDURESTATUSWHERE`Db`='information_schema';

SHOWTRIGGERSFROM`information_schema`;

SHOWEVENTSFROM`information_schema`;

SELECT*,EVENT_SCHEMAAS`Db`,EVENT_NAMEAS`Name`FROMinformation_schema.`EVENTS`WHERE`EVENT_SCHEMA`='information_schema';

SELECT`DEFAULT_COLLATION_NAME`FROM`information_schema`.`SCHEMATA`WHERE`SCHEMA_NAME`='mysql';

SHOWTABLESTATUSFROM`mysql`;

SHOWFUNCTIONSTATUSWHERE`Db`='mysql';

SHOWPROCEDURESTATUSWHERE`Db`='mysql';

SHOWTRIGGERSFROM`mysql`;

SELECT*,EVENT_SCHEMAAS`Db`,EVENT_NAMEAS`Name`FROMinformation_schema.`EVENTS`WHERE`EVENT_SCHEMA`='mysql';

USE`mysql`;

SHOWCREATETABLE`mysql`.`db`;

SHOWCOLLATION;

SHOWENGINES;

USE`test`;

SELECT`DEFAULT_COLLATION_NAME`FROM`information_schema`.`SCHEMATA`WHERE`SCHEMA_NAME`='test';

SHOWTABLESTATUSFROM`test`;

SHOWFUNCTIONSTATUSWHERE`Db`='test';

SHOWPROCEDURESTATUSWHERE`Db`='test';

SHOWTRIGGERSFROM`test`;

SELECT*,EVENT_SCHEMAAS`Db`,EVENT_NAMEAS`Name`FROMinformation_schema.`EVENTS`WHERE`EVENT_SCHEMA`='test';

SHOWVARIABLESLIKE'collation_server';

SHOWCREATEDATABASE`test`;

SELECT`DEFAULT_COLLATION_NAME`FROM`information_schema`.`SCHEMATA`WHERE`SCHEMA_NAME`='test';

SHOWTABLESTATUSFROM`test`;

SHOWFUNCTIONSTATUSWHERE`Db`='test';

SHOWPROCEDURESTATUSWHERE`Db`='test';

SHOWTRIGGERSFROM`test`;

SELECT*,EVENT_SCHEMAAS`Db`,EVENT_NAMEAS`Name`FROMinformation_schema.`EVENTS`WHERE`EVENT_SCHEMA`='test';

SHOWDATABASES;

CREATEDATABASE`test1`/*!40100COLLATE'utf8_general_ci'*/;

RENAMETABLE`test`.`user1`TO`test1`.`user1`;

RENAMETABLE`test`.`user2`TO`test1`.`user2`;

RENAMETABLE`test`.`user3`TO`test1`.`user3`;

RENAMETABLE`test`.`user4`TO`test1`.`user4`;

SELECT`DEFAULT_COLLATION_NAME`FROM`information_schema`.`SCHEMATA`WHERE`SCHEMA_NAME`='test';

SHOWTABLESTATUSFROM`test`;

SHOWFUNCTIONSTATUSWHERE`Db`='test';

SHOWPROCEDURESTATUSWHERE`Db`='test';

SHOWTRIGGERSFROM`test`;

SELECT*,EVENT_SCHEMAAS`Db`,EVENT_NAMEAS`Name`FROMinformation_schema.`EVENTS`WHERE`EVENT_SCHEMA`='test';

DROPDATABASE`test`;

SHOWDATABASES;

/*进入会话"test"*/

SHOWDATABASES;

/*进入会话"test"*/

SELECT`DEFAULT_COLLATION_NAME`FROM`information_schema`.`SCHEMATA`WHERE`SCHEMA_NAME`='';

SHOWTABLESTATUSFROM``;

/*SQL错误(1102):Incorrectdatabasename''*/

SHOWFUNCTIONSTATUSWHERE`Db`='';

SHOWPROCEDURESTATUSWHERE`Db`='';

SHOWTRIGGERSFROM``;

/*SQL错误(1102):Incorrectdatabasename''*/

SELECT*,EVENT_SCHEMAAS`Db`,EVENT_NAMEAS`Name`FROMinformation_schema.`EVENTS`WHERE`EVENT_SCHEMA`='';

其执行过程跟上面给出的步骤差不多,自己可以找一个复杂的库更改一下试试看,玩的愉快。

如果您觉得本站对你有帮助,那么可以支付宝扫码捐助以帮助本站更好地发展,在此谢过。

mysql建索引 heidi_MySQL使用HeidiSQL工具改库名相关推荐

  1. groupby索引有效吗_面试官:MySQL建索引需要遵循哪些原则呢?

    点击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录.例如 ...

  2. mysql建索引java_MySQL 索引

    MySQL 索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索 ...

  3. mysql建索引 字段截取_提高MySQL索引策略一:隔离查询列

    在mysql中执行查询时,如果没有将查询条件(条件列)隔离出来,那么查询引擎则无法利用建立在该列上的索引进行数据获取.这里的"隔离"意味着查询条件字段不能作为表达式的一部分出现,所 ...

  4. mysql 建索引_mysql数据库正确建立索引及使用

    普通mysql运行,数据量和访问量不大的话,是足够快的,但是当数据量和访问量剧增的时候,那么就会明显发现MySQL很慢,甚至down掉,那么就要考虑优化我们的mysql了.其中优化mysql的一个重要 ...

  5. linux mysql 建索引_MySQL在创建索引之前一定要想到的事情

    MySQL在5.5.3版本引入了metadata lock 他的本意是解决之前版本事务隔离特性的几个bug,但是引入的问题也不小. 先说说MySQL的事务吧. Oracle的事务指的是需要分配回滚段的 ...

  6. vs连接mysql建一个表并增删查改_VS连接SQL Server数据库,增删改查详细教程(C#代码)...

    工具: 1.Visual Studio (我使用的是vs2013) 2.SQL Server  (我使用的是sql server2008) 操作: 1.打开SQL Server,打开后会看到数据库的初 ...

  7. 自动获取mysql建表语句_脚本工具---自动解析mysql建表语句,生成sqlalchemy表对象声明...

    常规建表语句: CREATE TABLE `test_table` ( `id` int(11) NOT NULL, `name` char(64) NOT NULL, `password` char ...

  8. mysql 查看索引 命令_MySQL命令篇之库、表、索引、用户、视图及SELECT查询

    大纲 一.库管理 二.表管理 三.索引管理 四.用户管理 五.视图管理 六.SELECT查询 一.库管理 (1).创建数据库CREATE DATABASE db_name [CHARACTER SET ...

  9. mysql trim 索引_mysql建索引后需要重启数据库修改MySQL的字符集

    windows下的mysql配置文件是my.ini,一般在c:\windows\my.ini或者c:\winnt\my.ini可以直接在这个文件里面加上 W WW.002pc .COM从mysql建索 ...

最新文章

  1. 如何一眼就分辨出本科、硕士和博士?
  2. 没抢到欧冠杯的票?没关系!在VR中看!
  3. python xpath语法-XPath 语法
  4. kdj超卖_三分钟学会KDJ三大买卖绝技,简单高效,把握最佳买卖点,不懂KDJ的股民值得一看!...
  5. 1564: Strange Class
  6. 在.Net Core 3.0中尝试新的System.Text.Json API
  7. Cheapest Palindrome POJ - 3280(动态规划*)
  8. 您的Apache Camel应用程序现在包括现成的文档
  9. php开发oa系统的插件下载不了,OA系统安装不了office控件的解决方法
  10. The Amazon Appstore is not currently available in your country
  11. 网络流24题 餐巾计划(费用流)
  12. swiper 重新初始化
  13. GPU图形处理器与CPU区别
  14. U盘里的文件都变成了.exe文件
  15. 四、完成Teigha.net库对CAD看图的放大/缩小/移动实体等界面操作,图层管理器,以及CAD文件布局的切换功能
  16. JSP————详解jsp标签
  17. 数据库服务器压缩文件,服务器数据库怎么压缩文件
  18. python制作水球图
  19. hive币涨幅空间大吗_HIVE币今日价格_HIVE币最新消息_HIVE币行情走势图 - 币界网
  20. BasicVSR论文阅读笔记

热门文章

  1. (休闲小游戏)Adidas的投篮游戏
  2. 百度地图坐标转换API
  3. 顶刊文献数据:商帮文化对企业融资行为的影响研究
  4. Leeming LUTs Pro for mac(创意色彩分级luts预设)
  5. 微信小程序更改头像昵称
  6. 如何找到windows开机启动项
  7. 计算机辅助模具设计实训心得6,模具设计毕业设计总结范文
  8. 行测 计算机知识 附答案,2014国家公务员考试行测常识判断:计算机技术
  9. 春雷在线考试系统介绍
  10. android9.0去掉默认的锁屏界面和屏幕超时锁屏