CREATE PROCEDURE sp_delete_article_by_id(IN aid INT)
BEGIN
DECLARE temp INT;
-- 刪除評論
SELECT COUNT(*) FROM gk_reply_article WHERE a_id = aid INTO temp;
IF temp <> 0 THEN
DELETE FROM gk_reply_article WHERE a_id = aid;
END IF;
-- 刪除點讚
SELECT COUNT(*) FROM gk_like_article WHERE a_id = aid INTO temp;
IF temp <> 0 THEN
DELETE FROM gk_like_article WHERE a_id = aid;
END IF;
-- 刪除文章本體
SELECT COUNT(*) FROM gk_article WHERE id = aid INTO temp;
IF temp <> 0 THEN
DELETE FROM gk_article WHERE id = aid;
END IF;
END
CREATE PROCEDURE processorders()
BEGIN
DECLARE o INT;
DECLARE ordernumbers CURSOR FOR SELECT order_num FROM orders;
OPEN ordernumbers;
FETCH ordernumbers INTO o;
-- 迴圈處理...
CLOSE ordernumbers;
END
隱含關閉:達到 END 自動關閉,但建議顯式 CLOSE。
INSERT、UPDATE、DELETEBEFORE 或 AFTER僅支援表,不支援視圖。
確保批次操作原子性:要麼全成功,要麼全回滾。
START TRANSACTION;
INSERT ...; UPDATE ...; DELETE ...;
COMMIT; -- 或 ROLLBACK;
SHOW VARIABLES; 查看當前設定。SHOW STATUS; 查看狀態計數器。SHOW PROCESSLIST; 顯示活躍執行緒,KILL id 終止長查詢。# 全庫
mysqldump -u user -p db_name > backup.sql
# 單表
mysqldump -u user -p db_name tbl_name > backup.sql
# 只結構
mysqldump -u user -p -d --add-drop-table db_name > struct.sql
# 遠端備份
mysqldump -u user -p -h 192.168.1.2 db_name > /backup/db.sql
mysqlhotcopy db_name /backup/dir/
FLUSH TABLES;
ANALYZE TABLE gk_article; -- 更新統計資訊
CHECK TABLE gk_article; -- 檢查錯誤
REPAIR TABLE gk_article; -- 修復 (MyISAM)
SHOW CHARACTER SET;
SHOW COLLATION;
3306