這小指令碼主要是方便批量建立資料庫表,需求是從a庫中找到指定表,提取指定表的sql建立語句,然後在b庫中建立相同具有相同規則的表名。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
###注意事項###
#本指令碼為臨時編寫,所以還有許多不足之處,使用時請看執行命令!
#本指令碼是呼叫外部引數啟動執行,使用方式如下:
# python指令碼空格加上目標資料表名稱,示例:
# ./batch_creation.py aaa
# 回車即可,如果aaa這個資料表存在則會首先讀取該錶的原有ddl內容,
# 然後到新的資料庫中重新建立資料表,使用者也可以更改指令碼內容,
# 比如將資料庫連線資訊完全通過位置引數來就行獲取。
# 另外需要改動建立指令碼的個數,可以修改46行中range即可。
import pymysql
import json
import sys
dic =
db1 = pymysql.connect(host=
'主資料庫位址'
, port=埠號, user=
'資料庫使用者名稱'
, passwd=
'資料庫使用者密碼'
,db=
'資料庫名'
)db2 = pymysql.connect(host=
'被資料庫位址'
, port=埠號, user=
'資料庫使用者名稱'
, passwd=
'資料庫使用者密碼'
,db=
'資料庫名'
)def
mysql_tables_ddl_select()
: cursor = db1.cursor(
) cursor.execute(
"show tables"
) data = cursor.fetchall(
)try
:for i in data:
for u in i:
cursor.execute(
"show create table {}"
.format
(str
(u))
) ddl=cursor.fetchall(
) dic.update(
dict
.fromkeys(i,
[ddl[0]
[1]]
))finally
: db1.close(
)print
("查詢表ddl完成!"
)def
mysql_tables_ddl_create()
: mysql_tables_ddl_select(
)if sys.ar**[1]
in dic:
dic_list = dic[sys.ar**[1]
] s_str =
"".join(dic_list)
dic_list1 = s_str.replace(sys.ar**[1]
,'{}'
)try
:with db2.cursor(
)as cursor:
for mumber in
range(10
):checksql =
'''drop table if exists {}'''
.format
(sys.ar**[1]
) cursor.execute(checksql)
sql = dic_list1.
format
(str
(sys.ar**[1]
)+'_'+
str(mumber)
) cursor.execute(sql)
db2.commit(
)finally
: db2.close(
)print
("建立表完成!"
)mysql_tables_ddl_create(
)
Python指令碼批量生成SQL語句
通過python指令碼批量生成插入資料的sql語句 原始sql語句 insert into system user id,login name,name,password,salt,code,createtime,email,main org,positions,status,used,url,in...
利用Python指令碼批量生成SQL語句
通過python指令碼批量生成插入資料的sql語句 原始swww.cppcns.comql語句 insert into system user id,login name,name,password,salt,code,createtime,email程式設計客棧,main org,position...
python 批量改名指令碼
第66屆艾美獎上,絕命毒師 一舉拿下了劇情類最佳劇集 最佳男主 最佳男女配角和最佳劇本5項重要大獎,成為艾美獎最大的贏家。這部歷時六年,共62集的劇集憑藉metacritic metacritic的評分是收錄各 的評分,並綜合得出的評分 99分 滿分100 的成績,成為寫入健力士世界紀錄大全的 世界...