日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

java 不能执行mysql存储过程_java无法执行mysql中的函数及存储过程的.sql备份文件...

發(fā)布時間:2023/12/15 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 不能执行mysql存储过程_java无法执行mysql中的函数及存储过程的.sql备份文件... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

需求:用java程序執(zhí)行【包含數(shù)據(jù)&結(jié)構(gòu)&函數(shù)&存儲過程】的.sql備份文件

問題記錄:

1.在執(zhí)行完insert類型的語句后,中文內(nèi)容會顯示亂碼。

解決:將mysql參數(shù)中character_set_server參數(shù)更改為utf8(原值為latin1)

該參數(shù)為服務(wù)器安裝時指定的默認(rèn)編碼格式,這個變量建議由系統(tǒng)自己管理,不要人為定義。

2.MySQL This function has none of DETERMINISTIC, NO SQL...錯誤1418.

SET GLOBAL log_bin_trust_function_creators = 1;

原因:在執(zhí)行創(chuàng)建函數(shù)的sql時,當(dāng)mysql啟動了bin-log并且存在主從復(fù)制情況下,CREATE PROCEDURE, CREATE FUNCTION, ALTER PROCEDURE,ALTER FUNCTION,CALL, DROP PROCEDURE, DROP FUNCTION等語句都會被寫進二進制日志,然后在從服務(wù)器上執(zhí)行,當(dāng)創(chuàng)建function的sql語句沒有聲明創(chuàng)建的參數(shù)類型時,可能會造成恢復(fù)的數(shù)據(jù)與主服務(wù)器數(shù)據(jù)不同,所以為了解決這個問題,MySQL強制要求,在主服務(wù)器上,除非子程序被聲明為確定性的或者不更改數(shù)據(jù),否則創(chuàng)建或者替換子程序?qū)⒈痪芙^。

DETERMINISTIC 不確定的

NO SQL 沒有SQl語句,當(dāng)然也不會修改數(shù)據(jù)

READS SQL DATA 只是讀取數(shù)據(jù),當(dāng)然也不會修改數(shù)據(jù)

MODIFIES SQL DATA 要修改數(shù)據(jù)

CONTAINS SQL 包含了SQL語句

回歸正題:解決上述mysql問題后依舊無法執(zhí)行創(chuàng)建函數(shù)和存儲過程的sql語句。

相關(guān)報錯信息如下:

舉例列出創(chuàng)建function的sql:

解決辦法:將sql文件中 創(chuàng)建函數(shù)以及存儲過程這部分的語句中,所有的“DELIMITER ;;”和所有的注釋,全部刪除掉。

之后可正常執(zhí)行~~

總結(jié)

以上是生活随笔為你收集整理的java 不能执行mysql存储过程_java无法执行mysql中的函数及存储过程的.sql备份文件...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。