Mysql查询数据库中含某字段的所有表

查询指定库拥有某字段的表

-- 注释: columnName 字段名   dbName 数据库名
-- AND TABLE_NAME NOT LIKE 'vw%'   --> 作用:排除视图

SELECT DISTINCT TABLE_NAME FROM information_schema.COLUMNS 
WHERE COLUMN_NAME = 'columnName' 
AND TABLE_SCHEMA='dbName' 
AND TABLE_NAME NOT LIKE 'vw%';

-- 举例:我要查数据库[fengchen]中包含字段[id]的所有表

select distinct TABLE_NAME from information_schema.`COLUMNS` 
where COLUMN_NAME='id' 
and TABLE_SCHEMA='fengchen' 
and TABLE_NAME not like 'vm%';

查询指定数据库所有的表名

-- 通用模板
select table_name from information_schema.tables 
where table_schema='dbName' 
and table_type='base table';

-- 例如:我要查询数据库【fengchen】中的所有表

select table_name from information_schema.`TABLES` 
where TABLE_SCHEMA='fengchen' 
and TABLE_TYPE='base table';

查询指定数据库没有某字段的所有表

-- 通用模板
SELECT
    table_name 
FROM
    information_schema.TABLES 
WHERE
    table_schema = 'dbName' 
    AND table_type = 'base table' 
    AND TABLE_NAME NOT IN 
( SELECT DISTINCT TABLE_NAME FROM information_schema.COLUMNS 
WHERE COLUMN_NAME = 'culumnName' 
AND TABLE_SCHEMA = 'dbName' 
AND TABLE_NAME NOT LIKE 'vw%' );


-- 例如:查询数据库【fengchen】中表里没有字段【id】的所有表

SELECT
    table_name 
FROM
    information_schema.`TABLES` 
WHERE
    TABLE_SCHEMA = 'fengchen' 
    AND TABLE_TYPE = 'base table' 
    AND TABLE_NAME NOT IN
 ( SELECT DISTINCT TABLE_NAME FROM information_schema.`COLUMNS` 
WHERE COLUMN_NAME = 'id' 
AND TABLE_SCHEMA = 'fengchen' 
AND TABLE_NAME NOT LIKE 'vm' )


-- 修改字段长度

alter table report_integral_detail modify
 column adjust_name VARCHAR(50);

修改字段长度可能会影响到应用程序的操作,请确保在适当的时间和地点进行修改。
如果你的表中已经存在数据,需要注意修改字段长度可能会导致数据丢失或者改变,因此在修改前最好先备份数据。
修改字段长度的操作可能会花费一定的时间,因此请确保在操作期间不要关闭程序或者强制终止任务。

猜你喜欢

转载自blog.csdn.net/zhengren964/article/details/133805702