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

myis55555發表於2021-01-22

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章