MySql存儲過程動態創建表並插入數據
最近做的一個項目,數據庫用的是MySql,對於MySql不是很熟練,只是會簡單的應用,畢竟簡單的sql語句還是相通的,但是隨著項目的深入復雜的sql語句開始慢慢多起來,其中一個小難點就是要根據當天的日期動態創建表,並且向其中插入數據。
具體邏輯可以理解為,先去數據庫查詢有沒有當天的記錄表,如果沒有則創建表,然後執行當天的日志寫入。
Mysql的可視化工具我們用的是navicat,相對來說還是比較好用,當然沒有sqlserver 那麼人性化(很多快捷鍵不支持,操作累贅)。下面我就來說一說用navicat如何動態創建數據庫表並且插入數據。
一:創建存儲過程
二:用concat函數拼接動態創建表的語句並執行
三:同樣用concat函數拼接向動態創建的表寫入數據的語句並執行
因為數據庫表都是固定前綴加當前日期的形式,所以無論創建表還是寫入數據其實都是根據動態表來的,所以不能向原來那種固定表一樣來寫簡單的insert 語句,另外,傳給存儲過程的參數id,並不能直接傳給存儲的insert語句,會報sql語句錯誤,所以需要引入局部參數,可能並不是最好的辦法,但是目前作者還沒找到更好的寫法,如果大家有什麼更好的或者覺得哪裡可以改進的希望多多交流。
對於mysql,我們不可忽視其強大,mysql還有很多需要學習的,接下來既然每天都動態生成記錄表了,那麼肯定需要一個job,來按照一定的時間規律來清除或者備份數據庫表,接下來就要研究mysql的job,慢慢來,要學的還很多。