1.之前經常在oracle數據庫中使用存儲過程,換到mysql后用的不多,但是有時候也用,大致記錄一下,基本和oracle的一樣。
CREATE DEFINER = `root`@`%` PROCEDURE `NewProc`() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE n_id decimal; DECLARE cur1 CURSOR FOR SELECT b.ID FROM book_fs AS b where b.BOOKID NOT IN (SELECT ID FROM media) ORDER BY b.ID limit 500000; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- 打開游標 OPEN cur1; REPEAT FETCH cur1 INTO n_id; IF NOT done THEN DELETE from book_fs where id = n_id; END IF; UNTIL done END REPEAT; CLOSE cur1; END;
2.統計所有表數據量
use information_schema; select table_name,table_rows from tables where TABLE_SCHEMA = 'your_DB_name' order by table_rows desc;
-- 說明:以上語句得出的行統計數量,並不精確,是一個大約估計的數量