发布可以被定义在任何物理复制的主服务器上。定义有发布的节点被称为发布者。发布是从一个表或者一组表生成的改变的集合,也可以被描述为更改集合或者复制集合。每个发布都只存在于一个数据库中。
发布与模式不同,不会影响表的访问方式。如果需要,每个表都可以被加入到多个发布。当前,发布只能包含表。对象必须被明确地加入到发布,除非发布是用ALL TABLES
创建的。
Publication可以选择把它们产生的更改限制为INSERT
、UPDATE
、DELETE
以及TRUNCATE
的任意组合,类似于触发器如何被特定事件类型触发的方式。默认情况下,所有操作类型都会被复制。
为了能够复制UPDATE
和DELETE
操作,被发布的表必须配置有一个“复制标识”,这样在订阅者那一端才能标识对于更新或删除合适的行。默认情况下,复制标识就是主键(如果有主键)。也可以在复制标识上设置另一个唯一索引(有特定的额外要求)。如果表没有合适的键,那么可以设置成复制标识
“full”,它表示整个行都成为那个键。不过,这样做效率很低,只有在没有其他方案的情况下才应该使用。如果在发布者端设置了“full”之外的复制标识,在订阅者端也必须设置一个复制标识,它应该由相同的或者少一些的列组成。如何设置复制标识的细节请参考
REPLICA IDENTITY
。如果在复制UPDATE
或DELETE
操作的发布中加入了没有复制标识的表,那么订阅者上后续的UPDATE
或DELETE
操作将导致错误。不管有没有复制标识,INSERT
操作都能继续下去。
每一个发布都可以由多个订阅者。
Publication通过使用CREATE PUBLICATION命令创建并且可以在之后使用相应的命令进行修改或者删除。
表可以使用ALTER PUBLICATION动态地增加或者移除。ADD TABLE
以及DROP TABLE
操作都是事务性的,因此一旦该事务提交,该表将以正确的快照开始或者停止复制。
SET AUTOCOMMIT — 设置当前会话的自动提交行为大纲SET AUTOCOMMIT { = | TO } { ON | OFF }描述 SET AUTOCOMMIT设置当前数据库...
Image vspace 属性 Image 对象定义和用法vspace 属性设置或返回图像的顶部和底部的空白。space 和 vspace 属性可与 align 一同使...
Style borderImageSource 属性 Style 对象实例使用图像作为环绕 div 元素的边框:document.getElementById(myDIV).style.borderI...
Style counterIncrement 属性 Style 对象实例改变 counterIncrement 属性:document.getElementById(myH1).style.counterIncreme...
Style columnRuleWidth 属性 Style 对象实例改变列之间的宽度规则:document.getElementById(myDIV).style.columnRuleWidth=10px...