31.1. 發佈(Publication)

    發佈與綱要不同,不會影響資料表的存取方式。如果需要,每個資料表可以加到多個發佈之中。 發佈目前可能只包含資料表。物件必須明確加入,除非為 ALL TABLES 建立發佈。

    發佈的資料表必須配置「副本識別」,以便能夠複寫 UPDATE 和 DELETE 操作,使在訂閱端可以識別更新或刪除適當的資料列。預設情況下,這是主鍵,如果有的話。另一個是唯一索引(具有某些附加要求)也可以設定為副本識別。如果該資料表沒有任何合適的方式,則可以將其設定為副本識別「full」,這意味著整個資料列都作為識別。但是,這效能是非常低的,只有在沒有其他解決方案可行的情況下才可以這樣使用。如果在發佈方設定了除「full」之外的副本識別,則還必須在訂閱戶設定包含相同或更少欄位的副本標別。有關如何設定副本識別的詳細訊息,請參閱 REPLICA IDENTITY。如果沒有副本識別的資料表被加到複寫 UPDATE 或 DELETE 操作的發佈中,則隨後的 UPDATE 或 DELETE 操作將導致發佈者出錯。不管任何副本識別,INSERT 操作都可以繼續進行。

    使用 CREATE PUBLICATION 指令建立發佈,稍後可以使用相應的命令變更或移除發佈。