mysql存储过程,获取指定数据库的某个表的字段信息


DROP PROCEDURE IF EXISTS Proc;

DELIMITER //
CREATE PROCEDURE Proc(database_name varchar(50),table_name_ varchar(50))
BEGIN
DROP table IF EXISTS fk_view;
DROP table IF EXISTS col_view;
CREATE  table fk_view (
SELECT
    b.TABLE_NAME 表,
    b.COLUMN_NAME AS 栏位,
    b.REFERENCED_TABLE_NAME AS 参考表,
    b.REFERENCED_COLUMN_NAME AS 参考栏位
FROM
    information_schema.KEY_COLUMN_USAGE as b
WHERE
    b.TABLE_Schema = database_name
AND b.table_name = table_name_ and  (REFERENCED_TABLE_NAME<>'' or CONSTRAINT_name='PRIMARY')
);


CREATE  table col_view (
SELECT
            table_name 表名,
            COLUMN_NAME 字段名,
            COLUMN_type 字段类型
        FROM
            information_schema.COLUMNS
        WHERE
            TABLE_Schema = database_name
        AND table_name IN (
            SELECT
                table_name
            FROM
                information_schema.TABLES
            WHERE
                table_type = 'BASE TABLE'
            AND TABLE_Schema = database_name
        )
        AND table_name = table_name_
);
select * from col_view as a LEFT JOIN fk_view as b on b.`栏位`=a.`字段名`;
DROP table IF EXISTS fk_view;
DROP table IF EXISTS col_view;
END//
DELIMITER ;

CALL Proc('hjf_jianzheng','sy_user');


转载于:https://www.cnblogs.com/gaocong/p/5127003.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值