mysql執行sql腳本時--force的作用


  前幾天要定位一個升級腳本執行后,升級語句未執行的問題。

  定位后發現了幾個問題。

 

       第一個就是,很多的腳本不規范,沒有delete,直接insert或者update,導致執行腳本時報主鍵沖突錯誤。

        升級腳本的一個原則就是可以重復多次執行,缺少delete是不規范的。建表語句的列最好有commet,說明該列的作用是什么。

 

       第二個問題是,許多不規范的語句在整個升級腳本的中間位置,那靠后提交的語句是否被執行了呢。

        是被執行了,mysql -h localhost -u root -p123456 < F:\hello world\test.sql是可以加上--force的。這樣默認的遇到錯誤就停止,變成了會一直執行完腳本。

 

       升級語句未執行的問題,最終是和腳本的執行順序有關。使用notepad的搜索功能,搜索整個腳本文件夾,有2個腳本對同一張表同一字段的操作。

       一堆腳本在一起,File的list方法得到的結果是按文件名的asc碼排序的。

       同一張表同一字段的操作,執行后又被另一個腳本的語句執行后給覆蓋了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM