ITPub博客

首页 > 数据库 > MySQL > MySQL使用小技巧(information_schema表空间)

MySQL使用小技巧(information_schema表空间)

原创 MySQL 作者:myis55555 时间:2021-01-22 22:39:51 0 删除 编辑

1、查询数据库行数。

SELECT * FROM information_schema.`TABLES` a 
WHERE a.`TABLE_SCHEMA` = '数据库名' 
AND a.`TABLE_NAME` LIKE '表名______';

2、多张表的删除,修改快捷sql写法。

基础语法: drop table if EXISTS 表名;

SELECT CONCAT('drop TABLE if exists ',TABLE_NAME,';') 
FROM information_schema.`TABLES` a 
WHERE a.`TABLE_SCHEMA` = '数据库名' 
AND a.`TABLE_NAME` IN ('表名1','表名2');

3、表的重命名,快速生成sql的方式。

基础语法:rename table 原表名 to 新表名。

SELECT CONCAT('RENAME TABLE ',TABLE_NAME,' to ',CONCAT(TABLE_NAME,'_;')) 
FROM information_schema.`TABLES` a 
WHERE a.`TABLE_SCHEMA` = '数据库名' 
AND a.`TABLE_NAME` IN ('表名1','表名2');


4、查看碎片化的表数据,并生成收集信息的sql。

基础语法:alter table xxx engine = innodb;

SELECT CONCAT('alter table ',table_name,' engine = innodb;') 
FROM information_schema.tables 
WHERE TABLE_SCHEMA = 'frontend22db'
AND data_free > 0;

5、修改字段名为可空

基础语法:

ALTER TABLE 表名 MODIFY 字段名 VARCHAR(20) DEFAULT NULL;
-- 查询语句,批量生成
SELECT CONCAT('alter table ',table_name,' modify ',column_name,' ',
column_type,' DEFAULT NULL;') 
FROM information_schema.`COLUMNS`
WHERE TABLE_SCHEMA = 'frontend22db'
AND is_nullable = 'YES';



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69903557/viewspace-2751593/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-12-22

  • 博文量
    17
  • 访问量
    6551