MySQL 5.0 引入四大企業級特性,標誌著從「輕量級資料庫」向「通用關係型資料庫」邁進:
CREATE PROCEDURE proc_name ([param_list])
BEGIN
DECLARE var_name type [DEFAULT value];
IF condition THEN ... ELSE ... END IF;
WHILE condition DO ... END WHILE;
INSERT / UPDATE / DELETE / SELECT ...;
END
CREATE TRIGGER trig_name BEFORE/AFTER INSERT/UPDATE/DELETE
ON tbl_name FOR EACH ROW
BEGIN
-- 可用 NEW.col / OLD.col 存取新舊值
IF NEW.amount > 1000 THEN SET NEW.status = 'VIP'; END IF;
END
CREATE VIEW view_name AS SELECT col1, col2 FROM tbl WHERE condition;
-- 可更新視圖需滿足:單表、無聚合/分組/去重、無子查詢、所有非衍生欄位來自基表
簡化複雜查詢、實現欄位級安全控制、屏蔽表結構變更影響應用層。
標準化元數據查詢介面:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='mydb';
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='users';
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='PROCEDURE';
替代 `SHOW TABLES`/`DESCRIBE` 等非標準命令,支援跨資料庫元數據聯結查詢,工具開發首選。
mysql_fix_privilege_tables # 升級系統表,生成 mysql.proc 等新表
SELECT VERSION(); -- 確認 5.0.x