從網上搜尋了半天也沒有合適的,大多是以;分隔後直接執行, 但是這樣會存在注釋的問題。一般匯出的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...