日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
創(chuàng)新互聯(lián)OceanBase教程:OceanBase 限制和降級(jí)規(guī)則

某些類(lèi)型的結(jié)果集對(duì)于某些查詢(xún)是不適用的。如果為運(yùn)行的查詢(xún)指定了不可用的結(jié)果集類(lèi)型或并發(fā)類(lèi)型,則 OceanBase Connector/J 將遵循相應(yīng)的規(guī)則來(lái)確定最佳可行類(lèi)型。

實(shí)際的結(jié)果集類(lèi)型和并發(fā)類(lèi)型是在運(yùn)行語(yǔ)句時(shí)確定的,如果所需的結(jié)果集類(lèi)型或并發(fā)類(lèi)型不可用,則驅(qū)動(dòng)程序?qū)⒃谡Z(yǔ)句對(duì)象上發(fā)出 SQLWarningSQLWarning 對(duì)象包含該請(qǐng)求類(lèi)型不可用的原因。檢查警告以驗(yàn)證您是否收到了所需的結(jié)果集類(lèi)型。

結(jié)果集限制

對(duì)結(jié)果集的查詢(xún)具有以下限制。不遵循這些準(zhǔn)則將導(dǎo)致 OceanBase Connector/J 選擇備用結(jié)果集類(lèi)型或并發(fā)類(lèi)型。

生成可更新的結(jié)果集的限制:

  • 查詢(xún)只能從單個(gè)表中選擇,并且不能包含任何聯(lián)接操作。另外,為了執(zhí)行插入操作,查詢(xún)必須選擇所有不可為空的列以及所有沒(méi)有默認(rèn)值的列。

  • 查詢(xún)不能使用 SELECT *。

    查詢(xún)必須僅選擇表列。不能選擇派生的列或聚合,例如一組列的 SUM 或 MAX。

生成對(duì)回滾敏感的結(jié)果集的限制:

  • 查詢(xún)不能使用 SELECT *

  • 查詢(xún)只能從單個(gè)表中選擇。

可回滾和可更新的結(jié)果集不能有 Stream 列。當(dāng)服務(wù)器必須提取 Stream 列時(shí),會(huì)將讀取大小減為 1,并阻塞 Stream 列之后的所有列,直到讀取到 Stream 列為止。結(jié)果為無(wú)法批量獲取列和滾動(dòng)瀏覽。

作為 SELECT * 限制的一種解決方法,可以使用表別名,如以下示例所示:


SELECT tab.* FROM TABLE tab ...

可以通過(guò)一種簡(jiǎn)單的方法來(lái)確定查詢(xún)是否可能生成回滾敏感或可更新的結(jié)果集:如果可以合法地將 ROWID 列添加到查詢(xún)列表中,則該查詢(xún)可能為對(duì)回滾敏感或可更新的結(jié)果集。

結(jié)果集降級(jí)規(guī)則

如果指定的結(jié)果集類(lèi)型或并發(fā)類(lèi)型不可用,那么 OceanBase Connector/J 將根據(jù)以下規(guī)則選擇備用類(lèi)型:

  • 如果指定的結(jié)果集類(lèi)型為 TYPE_SCROLL_SENSITIVE,驅(qū)動(dòng)程序無(wú)法滿(mǎn)足該請(qǐng)求,則將嘗試降級(jí)為 TYPE_SCROLL_INSENSITIVE。

  • 如果指定或降級(jí)的結(jié)果集類(lèi)型為 TYPE_SCROLL_INSENSITIVE,驅(qū)動(dòng)程序無(wú)法滿(mǎn)足該請(qǐng)求,則將嘗試降級(jí)為 TYPE_FORWARD_ONLY

  • 如果指定的并發(fā)類(lèi)型為 CONCUR_UPDATABLE,驅(qū)動(dòng)程序無(wú)法滿(mǎn)足該請(qǐng)求,則將嘗試降級(jí)為 CONCUR_READ_ONLY。

說(shuō)明 
OceanBase Connector/J 對(duì)結(jié)果集類(lèi)型和并發(fā)類(lèi)型的任何操作都是相互獨(dú)立的。

運(yùn)行查詢(xún)后,可以通過(guò)在結(jié)果集對(duì)象上調(diào)用方法來(lái)驗(yàn)證 OceanBase Connector/J 實(shí)際使用的結(jié)果集類(lèi)型和并發(fā)類(lèi)型。

  • int getType() throws SQLException

    此方法返回用于查詢(xún)的結(jié)果集類(lèi)型的 int 值。ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_SENSITIVE 或 ResultSet.TYPE_SCROLL_INSENSITIVE 是可能的值。

  • int getConcurrency() throws SQLException

    此方法返回用于查詢(xún)的并發(fā)類(lèi)型的 int 值。ResultSet.CONCUR_READ_ONLY 或 ResultSet.CONCUR_UPDATABLE 是可能的值。

避免更新沖突

以下是有關(guān) OceanBase Connector/J 可更新結(jié)果集的注意事項(xiàng):

  • 不對(duì)可更新結(jié)果集強(qiáng)制執(zhí)行寫(xiě)鎖定。

  • 不檢查與結(jié)果集 DELETE 或 UPDATE 操作的沖突。

如果您嘗試對(duì)另一個(gè)提交事務(wù)的行執(zhí)行 DELETE 或 UPDATE 操作,則會(huì)發(fā)生沖突。

OceanBase Connector/J 使用 ROWID 唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中的一行。只要驅(qū)動(dòng)程序嘗試向數(shù)據(jù)庫(kù)發(fā)送 UPDATE 或 DELETE 操作時(shí) ROWID 是有效的,該操作就會(huì)運(yùn)行。

驅(qū)動(dòng)程序?qū)⒉粫?huì)報(bào)告其他已提交事務(wù)所做的任何更改。任何沖突都將被忽略,并且您的更改將覆蓋以前的更改。

為避免此類(lèi)沖突,請(qǐng)?jiān)谶\(yùn)行生成結(jié)果集的查詢(xún)時(shí)使用 FOR UPDATE 功能。這將避免沖突,但也將阻止同時(shí)訪(fǎng)問(wèn)數(shù)據(jù)。數(shù)據(jù)項(xiàng)只能同時(shí)保留一個(gè)寫(xiě)鎖。


本文標(biāo)題:創(chuàng)新互聯(lián)OceanBase教程:OceanBase 限制和降級(jí)規(guī)則
本文網(wǎng)址:http://www.dlmjj.cn/article/djcsosc.html