38 lines
1.0 KiB
Plaintext
38 lines
1.0 KiB
Plaintext
DELIMITER //
|
|
|
|
CREATE OR REPLACE PROCEDURE zen_read_schema (
|
|
IN p_tablename VARCHAR(100)
|
|
)
|
|
/*
|
|
功能:讀取資料表結構資訊
|
|
範例:CALL zen_read_schema('pmsproject_class');
|
|
*/
|
|
BEGIN
|
|
SELECT
|
|
t.TABLE_NAME AS '表格名稱',
|
|
c.COLUMN_NAME AS '欄位名稱',
|
|
c.ORDINAL_POSITION AS '序號',
|
|
c.DATA_TYPE AS '資料型別',
|
|
IFNULL(c.CHARACTER_MAXIMUM_LENGTH, '') AS '長度',
|
|
'' AS '預設值',
|
|
CASE WHEN c.IS_NULLABLE = 'YES' THEN 'N' ELSE 'Y' END AS '是否允許空值',
|
|
IFNULL(
|
|
(SELECT COLUMN_COMMENT
|
|
FROM INFORMATION_SCHEMA.COLUMNS
|
|
WHERE TABLE_SCHEMA = t.TABLE_SCHEMA
|
|
AND TABLE_NAME = t.TABLE_NAME
|
|
AND COLUMN_NAME = c.COLUMN_NAME),
|
|
''
|
|
) AS '欄位描述'
|
|
FROM
|
|
INFORMATION_SCHEMA.TABLES t
|
|
LEFT JOIN INFORMATION_SCHEMA.COLUMNS c ON t.TABLE_NAME = c.TABLE_NAME AND t.TABLE_SCHEMA = c.TABLE_SCHEMA
|
|
WHERE
|
|
t.TABLE_TYPE = 'BASE TABLE'
|
|
AND t.TABLE_NAME = p_tablename
|
|
ORDER BY
|
|
t.TABLE_NAME,
|
|
c.ORDINAL_POSITION;
|
|
END//
|
|
|
|
DELIMITER ; |