mysqldump匯入儲存過程和其註釋

花花蘑菇發表於2016-10-11
mysqldump匯出儲存過程時,會有註釋的。但是在用mysql命令匯入時,如果不加說明,註釋會自動過濾掉。為了連同註釋一起匯入進去,可以新增--comment引數。
例子:
匯出儲存過程:
if %time:~0,2% lss 10 (
set ymd=%date:~0,4%-%date:~5,2%-%date:~8,2%_0%time:~1,1%
)else (
set ymd=%date:~0,4%-%date:~5,2%-%date:~8,2%_%time:~0,2%
)
set date=%date:~0,4%-%date:~5,2%-%date:~8,2%
set v_backup_file_name=xedk_%ymd%_bak.sql
set v_backup_error_name=xedk_%ymd%_error.txt
mysqldump -uroot -h192.168.2.154 -P 3308 -p"root" --log-error=D:\DBStruct_%v_backup_error_name% -ntd -R --skip-triggers -f test >"D:\DBStruct_%v_backup_file_name%"
引數說明:
--log-error  將匯出過程中的錯誤日誌記錄在此引數指示的路徑中
-n 即--no-create-db,只匯出資料,而不新增CREATE DATABASE 語句
-t 即--no-create-info,只匯出資料,而不新增CREATE TABLE 語句
-d 即--no-data,不匯出任何資料,只匯出資料庫表結構
-R  即--routines,匯出儲存過程和自定義函式
--skip-triggers 匯出時遮蔽觸發器
-f 強制匯出,就算中間有錯誤也不中斷,跳過錯誤繼續導。
test 這裡是我的測試庫名

總結:該命令就是將test庫中的函式單獨匯出,而不匯出表結構以及相關資料已經觸發器等。
(備註:
mysqldump -uroot -p"root" -ntd -R --skip-triggers -f test  >"D:\DBStruct_test1.sql"
只匯出了儲存過程
mysqldump -uroot -p"root" -td -R --skip-triggers -f test  >"D:\DBStruct_test2.sql"
只匯出了儲存過程,匯出結果和上面沒什麼區別
mysqldump -uroot -p"root" -d -R --skip-triggers -f test  >"D:\DBStruct_test3.sql"
只匯出表結構和儲存過程
mysqldump -uroot -p"root" -R --skip-triggers -f test  >"D:\DBStruct_test4.sql"
雖然條件寫的是隻匯出儲存過程,但是還是會把表結構和表資料一起匯出。
mysqldump -uroot -p"root" --single-transaction -B test --tables test_parm >"D:\DBData_test.sql"
匯出test庫中的表test_parm的表結構以及表資料,-B指示哪個資料庫,--tables指示哪張表。


匯入:
mysql -uroot -p"root" -P 3308 --comment test < “D:\DBStruct_xedk_2016-10-11_02_bak.sql”  2> "D:\XEDKDBbak\errorDBSturct.txt"
將匯出的檔案匯入到test庫中,並且將匯入過程中報的錯記錄在檔案
D:\XEDKDBbak\errorDBSturct.txt中。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28497416/viewspace-2126127/,如需轉載,請註明出處,否則將追究法律責任。

相關文章