pymysql執行sql指令碼

2022-07-09 01:57:14 字數 1440 閱讀 5723

從網上搜尋了半天也沒有合適的,大多是以;分隔後直接執行, 但是這樣會存在注釋的問題。一般匯出的sql檔案中,都包含了大量的注釋;

import pymysql

def mysql_init():

# conf 包含mysql的一些配置

con = pymysql.connect(host=conf.get('db', 'mysql_uri'),

port=conf.getint('db', 'mysql_port'),

user=conf.get('db', 'mysql_username'),

password=conf.get('db', 'mysql_password'),

charset='utf8')

cur = con.cursor()

cur.execute("create database test character set utf8;")

con.close()

sync_mysql_data('test', "test.sql")

print '初始化mysql資料成功'

def sync_mysql_data(db, file):

with open(file, "r") as f: # 開啟檔案

data = f.read()

lines = data.splitlines()

sql_data = ''

# 將--注釋開頭的全部過濾,將空白行過濾

for line in lines:

if len(line) == 0:

continue

elif line.startswith("--"):

continue

else:

sql_data += line

sql_list = sql_data.split(';')[:-1]

sql_list = [x.replace('\n', ' ') if '\n' in x else x for x in sql_list]

con = pymysql.connect(host=conf.get('db', 'mysql_uri'),

port=conf.getint('db', 'mysql_port'),

user=conf.get('db', 'mysql_username'),

password=conf.get('db', 'mysql_password'),

database=db,

charset='utf8')

cur = con.cursor()

for sql_item in sql_list:

print sql_item

cur.execute(sql_item)

con.close()

批量執行SQL指令碼

1.先要 xp cmdshell 這個東東給開啟,開啟方法如下 sp configure show advanced options 1reconfigure gosp configure xp cmdshell 1reconfigure go測試就這樣exec master.dbo.xp cmds...

sql 執行大指令碼

sqlserver在執行過大的指令碼 如對資料庫資料及架構備份的指令碼等 時,會出現沒有足夠記憶體執行程式的警告。此時,可通過再本地計算機的終端中執行以下命令之一 根據需要 來執行大指令碼 語法 osql s 資料庫伺服器位址 u 資料庫登入名稱 p 資料庫登入密碼 i 指令碼路徑示例 data s...

Mysql執行單個sql指令碼 執行多個sql指令碼

1 開啟mysql命令視窗 source test.sqlsource 不帶分號 1 待執行的sql檔案為test1.sql test2.sql test.sql 4.sql等 2 寫乙個總的sql檔案例如 all.sql檔案 source test1.sql source test2.sql so...