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');
相关文章:
- golang MySQL实现对数据库表存储获取操作示例 2023-03-07
- mysql根据指定指定字符拆分某个字段,分割成多条记录 2022-12-23
- sqlserver数据库存储过程 2022-12-23
- mysql 数据库,表存储 大小 2022-12-23
- MySQL根据某个字段查询重复的数据 2022-12-23
- c++获取sqlite3数据库表中所有字段的方法 2022-12-23
- MySQL使用正则表达式去检索指定数据库字段 2022-12-23