您好,increment:代理主鍵,適合于所有數(shù)據(jù)庫(kù),由hibernate維護(hù)主鍵自增,和底層數(shù)據(jù)庫(kù)無(wú)關(guān),但是不適合于2個(gè)或以上hibernate進(jìn)程。
創(chuàng)新互聯(lián)建站2013年至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元沙灣做網(wǎng)站,已為上家服務(wù),為沙灣各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
identity:代理主鍵,適合于mysql或ms
sql
server等支持自增的dbms,主鍵值不由hibernate維護(hù)。
sequence:代理主鍵,適合于oracle等支持序列的dbms,主鍵值不由hibernate維護(hù),由序列產(chǎn)生。
native:代理主鍵,根據(jù)底層數(shù)據(jù)庫(kù)的具體特性選擇適合的主鍵生成策略,如果是mysql或sqlserver,選擇identity,如果是oracle,選擇sequence。
hilo:代理主鍵,hibernate把特定表的字段作為hign值,生成主鍵值
uuid.hex:代理主鍵,hibernate采用uuid
128位算法生成基于字符串的主鍵值
assign:適合于應(yīng)用程序維護(hù)的自然主鍵。
想要實(shí)現(xiàn)安全的自增只能使用hibernate維護(hù)得自增屬性identity,或者使用開發(fā)者自己維護(hù)id值assign。如果使用identify,經(jīng)過(guò)測(cè)試發(fā)現(xiàn)使用無(wú)論開發(fā)者是否給對(duì)象的id賦值,hibernate在保存對(duì)象時(shí)會(huì)自動(dòng)給id賦值(為mysql表中id最大值+1);如果使用assign,用戶在保存對(duì)象前必須給對(duì)象的id賦值,值必須大于等于0,如果等于0時(shí),那么數(shù)據(jù)表id記錄會(huì)使用mysql數(shù)據(jù)庫(kù)維護(hù)的最大id+1,如果大于0時(shí),則表id則為用戶設(shè)置的對(duì)象的id值。
經(jīng)過(guò)實(shí)驗(yàn)得出,想要實(shí)現(xiàn)mysql的sql語(yǔ)句句式以及最終效果,需要設(shè)置hibernate配置文件的id自增屬性為assign,如果知道id的話則設(shè)置對(duì)象的id為已知的id,否則設(shè)置id的值為0,。
如果id自增屬性為assign,那么hibernate保存對(duì)象后,對(duì)象的id仍然為保存前設(shè)置的值;
如果id自增屬性為identity,那么hibernate保存對(duì)象后,對(duì)象的id為數(shù)據(jù)庫(kù)中該條記錄的id的值。
在使用MySQL數(shù)據(jù)庫(kù)的時(shí)候,都碰到過(guò)因斷電造成數(shù)據(jù)庫(kù)損壞的情況,大家都知道,斷電或非正常關(guān)機(jī)是導(dǎo)致MySQL數(shù)據(jù)庫(kù)出現(xiàn)錯(cuò)誤最常見(jiàn)的原因,如何恢復(fù)MySQL數(shù)據(jù)庫(kù)是大家都非常頭痛的問(wèn)題。目前有方法可以幫助大家恢復(fù)損壞的MySQL數(shù)據(jù)庫(kù)嗎?
當(dāng)用戶出現(xiàn)斷電造成的MySQL數(shù)據(jù)庫(kù)丟失損壞時(shí),如果能進(jìn)入MySQL軟件,但是提示錯(cuò)誤信息,用戶可以通過(guò)“系統(tǒng)維護(hù)”—“數(shù)據(jù)庫(kù)壓縮修復(fù)”,壓縮下數(shù)據(jù)庫(kù)(有些軟件在“系統(tǒng)設(shè)置”—“系統(tǒng)維護(hù)”—“數(shù)據(jù)庫(kù)備份\恢復(fù)”中),這種方法只適合一小部分的數(shù)據(jù)庫(kù)故障修復(fù),功能性并不高。
現(xiàn)在網(wǎng)絡(luò)上有兩種比較推薦使用的MySQL數(shù)據(jù)庫(kù)恢復(fù)方法,一種方法使用MySQL(和PHP搭配之最佳組合)的check table和repair table 的sql語(yǔ)句,另一種方法是使用MySQL(和PHP搭配之最佳組合)提供的多個(gè)myisamchk, isamchk數(shù)據(jù)檢測(cè)恢復(fù)工具。在很多用戶看來(lái),這兩個(gè)方法都比較復(fù)雜,并不適合大多數(shù)的用戶使用。另外,這兩種方法并不能有效的恢復(fù)MySQL數(shù)據(jù)庫(kù),可能還會(huì)造成數(shù)據(jù)庫(kù)被進(jìn)一步損壞,造成大家無(wú)法挽回的損失。根據(jù)以上幾個(gè)原因,這兩種MySQL數(shù)據(jù)庫(kù)恢復(fù)方法并不建議大家使用。
。
數(shù)據(jù)庫(kù)被損壞分以下幾種情況:
1、嚴(yán)重?fù)p壞
2、輕度損壞
3、有些表被損壞或有些表的部分記錄被損壞
mysql 有成套的dos指令
其中就有備份數(shù)據(jù)庫(kù)的指令
你可以將相關(guān)指令做成 bat 批處理文件
然后讓delphi執(zhí)行這個(gè)bat文件就可以
如何對(duì)MySQL數(shù)據(jù)庫(kù)日志文件進(jìn)行維護(hù)
用下列方法可以強(qiáng)制服務(wù)器啟用新的更新日志:
◆ mysqladmin flush-logs
你一般需要在命令行提供使用的數(shù)據(jù)庫(kù)用戶:
mysqladmin –u root –p flush-logs
◆ mysqladmin refresh
你一般需要在命令行提供使用的數(shù)據(jù)庫(kù)用戶:
mysqladmin –u root –p refresh
如果你正在使用MySQL 3.21或更早的版本,你必須使用mysqladmin refresh。
日常維護(hù)有很多方面的工作:數(shù)據(jù)庫(kù)狀態(tài)監(jiān)控、性能分析、SQL代碼分析與優(yōu)化等等。數(shù)據(jù)庫(kù)巡檢等等工作,你可以參考國(guó)內(nèi)上海愛(ài)可生公司網(wǎng)站上提供的MySQL服務(wù)相關(guān)的內(nèi)容來(lái)寫,呵呵。還可以咨詢他們。