Excel 生成 SQL 建立語句 create table
阿新 • • 發佈:2021-08-07
總共兩張表,結構如下:
首先要把表結構轉變為以下的一維結構, excel儲存為 data_model.xlsx
table_name | column_name | data_type | default | comment |
---|---|---|---|---|
users | uid | bigint(10) | NULL | 使用者ID |
users | uage | int | NULL | 使用者年齡 |
users | uname | varchar(30) | NULL | 使用者姓名 |
users | udescription | varchar(50) | NULL | 描述 |
users | lut | datetime | CURRENT_TIMESTAMP | 最後更新時間 |
grades | uid | bigint(10) | NULL | 使用者ID |
grades | subject | varchar(30) | NULL | 科目 |
grades | score | decimal(18,2) | NULL | 分數 |
grades | lut | datetime | CURRENT_TIMESTAMP | 最後更新時間 |
Python 程式碼儲存為excel2sql_create.py
:
import pandas as pd data=pd.read_excel('data_model.xlsx') data=data.fillna('NULL') with open('./data_model.sql','w',encoding='utf8') as f: table_name='' for i,j in data.iterrows(): column_line=j.column_name+' '+j.data_type+' DEFAULT '+ j.default+' COMMENT \''+j.comment+'\'\n' if j.table_name == table_name: f.write(' ,'+column_line) else: if table_name!='': f.write(');\n\n') table_name=j.table_name f.writelines(['CREATE TABLE '+j.table_name+' (\n' ,' '+column_line]) f.write(');')
工作目錄中的檔案: data_model.xlsx
, excel2sql_create.py
最後在當前資料夾生成: data_model.sql
, 內容是:
CREATE TABLE users ( uid bigint(10) DEFAULT NULL COMMENT '使用者ID' ,uage int DEFAULT NULL COMMENT '使用者年齡' ,uname varchar(30) DEFAULT NULL COMMENT '使用者姓名' ,udescription varchar(50) DEFAULT NULL COMMENT '描述' ,lut datetime DEFAULT CURRENT_TIMESTAMP COMMENT '最後更新時間' ); CREATE TABLE grades ( uid bigint(10) DEFAULT NULL COMMENT '使用者ID' ,subject varchar(30) DEFAULT NULL COMMENT '科目' ,score decimal(18,2) DEFAULT NULL COMMENT '分數' ,lut datetime DEFAULT CURRENT_TIMESTAMP COMMENT '最後更新時間' );