如何把只有insert語句的sql語句還原成數據庫表?

1 現有數據情況

現在只有一張sql文件,這個sql中只有insert語句,而且insert語句並不規範,沒有建表語句就意味着並不知道這張表的字段名都有什麼
此外,還有文件所對應的xls文件,在這個對應的xls中,可以通過第一行來確定sql文件的字段名

2 形成建表語句

要想插入數據庫,就必須要先建表,鑑於sql中字段名高達66個,所以放棄人工建表,編寫代碼進行編寫

  • 讀取xls文件的第一行獲得字段名
    代碼如下
  • 通過字段名來構建建表語句
    代碼如下

test.py文件內容

python文件寫完之後,在本地運行
執行命令python 文件路徑

這樣就可以獲得建表語句,在navicate中新建查詢,粘貼進去,就可以新建表成功了

error:
輸出建表語句的時候,報錯:

3 處理sql語句

sql語句是非常不規範的,需要進行處理

  • 對錶名的處理
    原有sql語句中,表名是帶有引號的,不能帶有雙引號
  • 對日期解析格式的處理
    原有的sql語句中,日期格式是,要替換成
  • 對TO_DATE 函數的處理
    原有的sql語句中,TO_DATE是oracle裏面的函數,mysql裏面沒有,需要替換成str_to_date

3 導入數據庫

先進入數據庫

mysql -u root -h 127.0.0.1 -p

輸入密碼,進入mysql終端

先確定要使用的數據庫

use 數據庫名

然後source命令執行插入即可

source 文件名
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章