Files
mayfly-go/server/internal/db/dbm/dbi/metasql/mysql_meta.sql
2025-02-20 17:07:13 +08:00

79 lines
1.9 KiB
SQL

--MYSQL_DBS 数据库名信息
SELECT
SCHEMA_NAME AS dbname
FROM
information_schema.SCHEMATA
WHERE
SCHEMA_NAME NOT IN ('mysql', 'information_schema', 'performance_schema')
ORDER BY SCHEMA_NAME
---------------------------------------
--MYSQL_TABLE_INFO 表详细信息
SELECT
table_name tableName,
table_comment tableComment,
table_rows tableRows,
data_length dataLength,
index_length indexLength,
create_time createTime
FROM
information_schema.tables
WHERE
table_type = 'BASE TABLE'
{{if .tableNames}}
AND table_name IN ({{.tableNames}})
{{end}}
AND table_schema = (
SELECT
database ()
)
ORDER BY table_name
---------------------------------------
--MYSQL_INDEX_INFO 索引信息
SELECT
index_name indexName,
column_name columnName,
index_type indexType,
IF(non_unique, 0, 1) isUnique,
SEQ_IN_INDEX seqInIndex,
INDEX_COMMENT indexComment,
SUB_PART subPart,
index_name = 'PRIMARY' as isPrimaryKey
FROM
information_schema.STATISTICS
WHERE
table_schema = (
SELECT
database ()
)
AND index_name != 'PRIMARY'
AND table_name = ?
ORDER BY
index_name asc,
SEQ_IN_INDEX asc
---------------------------------------
--MYSQL_COLUMN_MA 列信息元数据
SELECT table_name tableName,
column_name columnName,
column_type columnType,
data_type dataType,
column_default columnDefault,
column_comment columnComment,
CASE
WHEN column_key = 'PRI' THEN
1
ELSE 0
END AS isPrimaryKey,
CASE
WHEN extra LIKE '%%auto_increment%%' THEN
1
ELSE 0
END AS autoIncrement,
is_nullable nullable,
CHARACTER_MAXIMUM_LENGTH charMaxLength,
NUMERIC_SCALE numScale,
NUMERIC_PRECISION numPrecision
FROM information_schema.COLUMNS
WHERE table_schema = (SELECT DATABASE())
AND table_name IN (%s)
ORDER BY table_name,
ordinal_position