<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 5.4\. 系統字段 每個表都有幾個_系統字段_,這些字段是由系統隱含定義的。因此, 這些名字不能用于用戶定義的字段名。請注意這些限制與這個名字是否關鍵字無關, 把名字用引號括起來并不能讓你逃離這些限制。你實際上不需要注意這些字段; 只要知道它們存在就可以了。 `oid` 行對象標識符(對象ID)。這個字段只有在創建表的時候使用了`WITH OIDS` 或者是配置參數[default_with_oids](#calibre_link-87)的值為真時出現。 這個字段的類型是`oid`(和字段同名);參閱[Section 8.18](#calibre_link-1152)獲取有關這種類型的更多信息。 `tableoid` 包含本行的表的OID。這個字段對那些從繼承層次中選取的查詢特別有用(參閱[Section 5.8](#calibre_link-1041)), 因為如果沒有它的話,我們就很難說明一行來自哪個獨立的表。`tableoid` 可以和`pg_class`的`oid`字段連接起來獲取表名字。 `xmin` 插入該行版本的事務標識(事務ID)。注意:在這個環境里,一個行版本是一行的一個狀態; 一行的每次更新都為同一個邏輯行創建一個新的行版本。 `cmin` 在插入事務內部的命令標識(從零開始)。 `xmax` 刪除事務的標識(事務ID),如果不是被刪除的行版本,那么是零。在一個可見行版本里, 這個字段有可能是非零。這通常意味著刪除事務還沒有提交,或者是一個刪除的企圖被回滾掉了。 `cmax` 刪除事務內部的命令標識符,或者是零。 `ctid` 一個行版本在它所處的表內的物理位置。請注意,盡管`ctid` 可以用于非常快速地定位行版本,但每次`VACUUM FULL`之后, 一個行的`ctid`都會被更新或者移動。因此`ctid` 是不能作為長期的行標識符的。應該使用 OID ,或者更好是用戶定義的序列號,來標識一個邏輯行。 OID是32位的量,是在同一個集群內通用的計數器上賦值的。 對于一個大型或者長時間使用的數據庫,這個計數器是有可能重疊的。因此, 假定OID唯一是非常錯誤的,除非你自己采取了措施來保證它們是唯一的。 如果你需要標識表中的行,我們強烈建議使用序列號生成器。不過,也可以使用OID, 只要采取幾個注意事項即可: * 在使用OID標識行的每個表的OID字段創建一個唯一約束。在唯一約束(或者唯一索引)存在的時候, 系統會注意不去生成一個和現有行相同的OID。當然,只有在表中的數據行少于2&lt;sup class="calibre28"&gt;32&lt;/sup&gt; (40億)行的時候才是可能的,而實際上表中的行最好遠比這個小,要不性能就會受影響了。 * 絕對不要假設OIDs是跨表唯一的;如果你需要全數據庫范圍內的標識, 請使用`tableoid`和行的OID的組合。 * 需要OID的表應該帶著`WITH OIDS`創建。從PostgreSQL 8.1開始,`WITHOUT OIDS`是缺省的。 事務標識符也是32位的量。在長時間運轉的數據庫里,它也可能會重疊。 只要我們采取一些合適的維護步驟,這并不是很要命的問題;參閱[Chapter 23](#calibre_link-1273) 獲取細節。不過,在長時間運行的環境里(超過十億次事務)依賴事務ID的唯一性并非明智的做法。 命令標識符也是32位的量。這樣就在一個事務里有2&lt;sup class="calibre28"&gt;32&lt;/sup&gt;(四十億)條SQL命令的硬限制。 在現實里這個限制應該不是什么問題,需要注意的是這個限制是SQL命令的條數, 而不是處理的行版本的條數。而且,自PostgreSQL 8.3起, 只有真正修改數據庫內容的命令才會消耗一個命令標識符。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看