如何把只有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 文件名
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章