CREATE PUBLICATION
CREATE PUBLICATION â ÑоздаÑÑ Ð¿ÑбликаÑиÑ
СинÑакÑиÑ
CREATE PUBLICATIONимÑ[ FOR ALL TABLES | FORобÑекÑ_пÑбликаÑии[, ... ] ] [ WITH (паÑамеÑÑ_пÑбликаÑии[=знаÑение] [, ... ] ) ] гдеобÑекÑ_пÑбликаÑÐ¸Ð¸Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑледÑÑÑим: TABLE [ ONLY ]имÑ_ÑаблиÑÑ[ * ] [ (имÑ_ÑÑолбÑа[, ... ] ) ] [ WHERE (вÑÑажение) ] [, ... ] TABLES IN SCHEMA {имÑ_ÑÑ ÐµÐ¼Ñ| CURRENT_SCHEMA } [, ... ]
ÐпиÑание
CREATE PUBLICATION ÑоздаÑÑ Ð½Ð¾Ð²ÑÑ Ð¿ÑбликаÑÐ¸Ñ Ð² ÑекÑÑей базе даннÑÑ
. ÐÐ¼Ñ Ð¿ÑбликаÑии должно оÑлиÑаÑÑÑÑ Ð¾Ñ Ð¸Ð¼Ñн дÑÑгиÑ
ÑÑÑеÑÑвÑÑÑиÑ
пÑбликаÑий в ÑекÑÑей базе.
ÐÑбликаÑÐ¸Ñ Ð¿Ð¾ ÑÑÑи ÑвлÑеÑÑÑ Ð³ÑÑппой ÑаблиÑ, Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² даннÑÑ ÐºÐ¾ÑоÑÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ ÑеплиÑиÑоваÑÑÑÑ Ñ Ð¸ÑполÑзованием логиÑеÑкой ÑепликаÑии. ÐодÑобнее о Ñом, как пÑбликаÑии впиÑÑваÑÑÑÑ Ð² ÑÑ ÐµÐ¼Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии, ÑаÑÑказÑваеÑÑÑ Ð² Разделе 31.1.
ÐаÑамеÑÑÑ
имÑÐÐ¼Ñ Ð½Ð¾Ð²Ð¾Ð¹ пÑбликаÑии.
FOR TABLEÐадаÑÑ ÑпиÑок ÑаблиÑ, добавлÑемÑÑ Ð² пÑбликаÑиÑ. ÐÑли пеÑед именем ÑаблиÑÑ Ñказано
ONLY, в пÑбликаÑÐ¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑеÑÑÑ ÑолÑко Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ ÑаблиÑа. ÐезONLYдобавлÑеÑÑÑ Ð¸ Ð·Ð°Ð´Ð°Ð½Ð½Ð°Ñ ÑаблиÑа, и вÑе ÐµÑ Ð¿Ð¾Ñомки (еÑли ÑаковÑе еÑÑÑ). ÐоÑле имени ÑаблиÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ добавиÑÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑное Ñказание*, ÑÑÐ¾Ð±Ñ Ñвно обознаÑиÑÑ, ÑÑо Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²ÐºÐ»ÑÑаÑÑÑÑ Ð¸ вÑе доÑеÑние ÑаблиÑÑ. Ðднако ÑÑо не ÑаÑпÑоÑÑÑанÑеÑÑÑ Ð½Ð° ÑекÑиониÑованнÑе ÑаблиÑÑ. СекÑии ÑекÑиониÑованной ÑаблиÑÑ Ð²Ñегда неÑвно ÑÑиÑаÑÑÑÑ ÑаÑÑÑÑ Ð¿ÑбликаÑии, поÑÑÐ¾Ð¼Ñ Ð¾Ð½Ð¸ никогда не добавлÑÑÑÑÑ Ð² пÑбликаÑÐ¸Ñ ÑвнÑм обÑазом.ÐÑли Ñказано необÑзаÑелÑное пÑедложение
WHERE, оно опÑеделÑÐµÑ Ð²ÑÑажение ÑилÑÑÑа ÑÑÑок. СÑÑоки, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑвÑÑажениевÑдаÑÑ false или null, не бÑдÑÑ Ð¿ÑбликоваÑÑÑÑ. ÐамеÑÑÑе, ÑÑо вÑÑажение нÑжно заклÑÑаÑÑ Ð² кÑÑглÑе Ñкобки. ÐÑо пÑедложение не дейÑÑвÑÐµÑ Ð½Ð° командÑTRUNCATE.ÐÑли Ñказан ÑпиÑок ÑÑолбÑов, ÑеплиÑиÑÑÑÑÑÑ ÑолÑко ÑказаннÑе ÑÑолбÑÑ. ÐÑли ÑпиÑок ÑÑолбÑов не задан, ÑеÑез ÑÑÑ Ð¿ÑбликаÑÐ¸Ñ Ð±ÑдÑÑ ÑеплиÑиÑоваÑÑÑÑ Ð²Ñе ÑÑолбÑÑ ÑаблиÑÑ, в Ñом ÑиÑле ÑÑолбÑÑ, добавленнÑе позже. Ðа командÑ
TRUNCATEÑÑо огÑаниÑение не дейÑÑвÑÑÑ. ÐодÑобнее о ÑпиÑÐºÐ°Ñ ÑÑолбÑов ÑаÑÑказÑваеÑÑÑ Ð² Разделе 31.4.РпÑбликаÑÐ¸Ñ Ð¼Ð¾Ð³ÑÑ Ð²ÐºÐ»ÑÑаÑÑÑÑ ÑолÑко поÑÑоÑннÑе базовÑе и ÑекÑиониÑованнÑе ÑаблиÑÑ. ÐÑеменнÑе, нежÑÑналиÑÑемÑе и ÑÑоÑонние ÑаблиÑÑ, а Ñакже маÑеÑиализованнÑе и обÑÑнÑе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ðµ могÑÑ Ð²Ñ Ð¾Ð´Ð¸ÑÑ Ð² пÑбликаÑиÑ.
УказаÑÑ ÑпиÑок ÑÑолбÑов в пÑбликаÑии, коÑоÑÐ°Ñ Ñакже пÑбликÑÐµÑ Ð²Ñе ÑаблиÑÑ Ð² ÑÑ ÐµÐ¼Ðµ (
FOR TABLES IN SCHEMA), нелÑзÑ.Ðогда в пÑбликаÑÐ¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÑеÑÑÑ ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÑаблиÑа, вÑе ÐµÑ ÑÑÑеÑÑвÑÑÑие и бÑдÑÑие ÑекÑии неÑвно ÑÑановÑÑÑÑ ÑаÑÑÑÑ Ð¿ÑбликаÑии. ÐоÑÑÐ¾Ð¼Ñ Ð´Ð°Ð¶Ðµ опеÑаÑии, вÑполнÑемÑе непоÑÑедÑÑвенно Ñ ÑекÑией, Ñакже пÑбликÑÑÑÑÑ ÑеÑез пÑбликаÑии, в коÑоÑÑе вклÑÑена ÐµÑ ÑодиÑелÑÑÐºÐ°Ñ ÑаблиÑа.
FOR ALL TABLESУÑÑанавливаеÑ, ÑÑо Ð´Ð°Ð½Ð½Ð°Ñ Ð¿ÑбликаÑÐ¸Ñ Ð¾Ñ Ð²Ð°ÑÑÐ²Ð°ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑÐµÑ ÑаблиÑÐ°Ñ Ð² базе даннÑÑ , вклÑÑÐ°Ñ ÑаблиÑÑ, коÑоÑÑе бÑдÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð¿Ð¾Ð·Ð¶Ðµ.
FOR TABLES IN SCHEMAУÑÑанавливаеÑ, ÑÑо Ð´Ð°Ð½Ð½Ð°Ñ Ð¿ÑбликаÑÐ¸Ñ Ð¾Ñ Ð²Ð°ÑÑÐ²Ð°ÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑÐµÑ ÑаблиÑÐ°Ñ Ð² Ñказанном ÑпиÑке ÑÑ ÐµÐ¼, вклÑÑÐ°Ñ ÑаблиÑÑ, коÑоÑÑе бÑдÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð¿Ð¾Ð·Ð¶Ðµ.
УказаÑÑ ÑÑ ÐµÐ¼Ñ, когда пÑбликаÑÐ¸Ñ Ñакже пÑбликÑÐµÑ ÑаблиÑÑ Ñо ÑпиÑком ÑÑолбÑом, нелÑзÑ.
РпÑбликаÑÐ¸Ñ Ð±ÑдÑÑ Ð²ÐºÐ»ÑÑÐµÐ½Ñ ÑолÑко поÑÑоÑннÑе базовÑе и ÑекÑиониÑованнÑе ÑаблиÑÑ, пÑиÑÑÑÑÑвÑÑÑие в ÑÑ ÐµÐ¼Ðµ. ÐÑеменнÑе, нежÑÑналиÑÑемÑе, ÑÑоÑонние ÑаблиÑÑ, маÑеÑиализованнÑе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ обÑÑнÑе пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð· ÑÑой ÑÑ ÐµÐ¼Ñ Ð² пÑбликаÑÐ¸Ñ Ð½Ðµ войдÑÑ.
Ðогда ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð½Ð°Ñ ÑаблиÑа пÑбликÑеÑÑÑ Ð¿Ð¾ÑÑедÑÑвом пÑбликаÑии ÑÑ ÐµÐ¼Ñ, вÑе ÐµÑ ÑÑÑеÑÑвÑÑÑие и бÑдÑÑие ÑекÑии неÑвно ÑÑановÑÑÑÑ ÑаÑÑÑÑ Ð¿ÑбликаÑии, незавиÑимо Ð¾Ñ Ñого, оÑноÑÑÑÑÑ Ð»Ð¸ к опÑбликованной ÑÑ ÐµÐ¼Ðµ или неÑ. ÐоÑÑÐ¾Ð¼Ñ Ð´Ð°Ð¶Ðµ опеÑаÑии, вÑполнÑемÑе непоÑÑедÑÑвенно Ñ ÑекÑией, Ñакже пÑбликÑÑÑÑÑ ÑеÑез пÑбликаÑии, в коÑоÑÑе вклÑÑена ÐµÑ ÑодиÑелÑÑÐºÐ°Ñ ÑаблиÑа.
WITH (паÑамеÑÑ_пÑбликаÑии[=знаÑение] [, ... ] )Ð ÑÑом пÑедложении могÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑÑÑ ÑледÑÑÑие необÑзаÑелÑнÑе паÑамеÑÑÑ Ð¿ÑбликаÑии:
publish(string)ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾Ð¿ÑеделÑеÑ, какие опеÑаÑии DML бÑÐ´ÐµÑ Ð¿ÐµÑедаваÑÑ Ð½Ð¾Ð²Ð°Ñ Ð¿ÑбликаÑÐ¸Ñ ÐµÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑикам. РкаÑеÑÑве его знаÑÐµÐ½Ð¸Ñ ÑеÑез запÑÑÑÑ Ð·Ð°Ð´Ð°ÑÑÑÑ ÑпиÑок опеÑаÑий из ÑледÑÑÑÐ¸Ñ :
insert,update,deleteиtruncate. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑбликÑÑÑÑÑ Ð²Ñе дейÑÑвиÑ, Ñак ÑÑо ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð¼ÐµÐµÑ Ð·Ð½Ð°Ñение по ÑмолÑаниÑ'insert, update, delete, truncate'.ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð²Ð»Ð¸ÑÐµÑ ÑолÑко на опеÑаÑии DML. Ð ÑаÑÑноÑÑи, он не ÑÑиÑÑваеÑÑÑ, когда копиÑÑÑÑÑÑ ÑÑÑеÑÑвÑÑÑие даннÑе ÑÐ°Ð±Ð»Ð¸Ñ Ð¿Ñи наÑалÑной ÑÐ¸Ð½Ñ ÑонизаÑии даннÑÑ (Ñм. ÐодÑаздел 31.7.1) Ð´Ð»Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии.
publish_via_partition_root(boolean)ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¾Ð¿ÑеделÑеÑ, бÑдÑÑ Ð»Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑекÑии ÑекÑиониÑованной ÑаблиÑÑ, вклÑÑÑнной в пÑбликаÑиÑ, пÑбликоваÑÑÑÑ ÐºÐ°Ðº пÑоизоÑедÑие в ÑекÑиониÑованной ÑаблиÑе (Ñ ÐµÑ Ð¸Ð¼ÐµÐ½ÐµÐ¼ и ÑÑ ÐµÐ¼Ð¾Ð¹), а не в Ñой ÑекÑии, где они ÑакÑиÑеÑки имели меÑÑо (ÑÑо поведение по ÑмолÑаниÑ). ÐклÑÑение ÑÑого паÑамеÑÑа позволÑÐµÑ ÑеплиÑиÑоваÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² неÑекÑиониÑованнÑÑ ÑаблиÑÑ Ð¸Ð»Ð¸ в ÑаблиÑÑ, ÑоÑÑоÑÑÑÑ Ð¸Ð· дÑÑгого набоÑа ÑекÑий.
ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ñакже опÑеделÑеÑ, какие ÑилÑÑÑÑ ÑÑÑок и ÑпиÑки ÑÑолбÑов вÑбиÑаÑÑÑÑ Ð´Ð»Ñ ÑекÑий; подÑобноÑÑи опиÑÐ°Ð½Ñ Ð½Ð¸Ð¶Ðµ.
Ðогда ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð²ÐºÐ»ÑÑÑн, опеÑаÑии
TRUNCATE, вÑполнÑемÑе непоÑÑедÑÑвенно Ñ ÑекÑиÑми, не ÑеплиÑиÑÑÑÑÑÑ.
ÐÑимеÑаниÑ
ÐÑли не задано ни FOR TABLE, ни FOR ALL TABLES, ни FOR TABLES IN SCHEMA, пÑбликаÑÐ¸Ñ ÑоздаÑÑÑÑ Ñ Ð¿ÑÑÑÑм набоÑом ÑаблиÑ. ÐÑо полезно, еÑли ÑаблиÑÑ Ð¸Ð»Ð¸ ÑÑ
ÐµÐ¼Ñ Ð±ÑдÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑÑÑ Ð¿Ð¾Ð·Ð´Ð½ÐµÐµ.
Создание пÑбликаÑии не влеÑÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ñй запÑÑк ÑепликаÑии. ÐÑа опеÑаÑÐ¸Ñ ÑолÑко опÑеделÑÐµÑ Ð»Ð¾Ð³Ð¸ÐºÑ Ð³ÑÑппиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ ÑилÑÑÑаÑии Ð´Ð»Ñ Ð±ÑдÑÑÐ¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑиков.
ЧÑÐ¾Ð±Ñ ÑоздаÑÑ Ð¿ÑбликаÑиÑ, полÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ имеÑÑ Ð¿Ñаво CREATE в ÑекÑÑей базе даннÑÑ
. (РазÑмееÑÑÑ, на ÑÑпеÑполÑзоваÑелей ÑÑо ÑÑловие не ÑаÑпÑоÑÑÑанÑеÑÑÑ.)
ЧÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ÑаблиÑÑ Ð² пÑбликаÑиÑ, полÑзоваÑÐµÐ»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ имеÑÑ Ð¿Ñава владелÑÑа ÑÑой ÑаблиÑÑ. ÐÑполÑзоваÑÑ Ð¿ÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ FOR ALL TABLES и FOR TABLES IN SCHEMA могÑÑ ÑолÑко ÑÑпеÑполÑзоваÑели.
ТаблиÑÑ, добавлÑемÑе в пÑбликаÑиÑ, коÑоÑÐ°Ñ Ð¾Ñ
ваÑÑÐ²Ð°ÐµÑ Ð¾Ð¿ÐµÑаÑии UPDATE и/или DELETE, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ ÑвойÑÑво REPLICA IDENTITY. РпÑоÑивном ÑлÑÑае оÑÑлеживание ÑÑиÑ
опеÑаÑий Ð´Ð»Ñ ÑÐ°Ð±Ð»Ð¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð¿ÑеÑено.
ÐÐ»Ñ Ð¿ÑбликаÑии опеÑаÑий UPDATE или DELETE необÑ
одимо, ÑÑÐ¾Ð±Ñ ÑпиÑок ÑÑолбÑов вклÑÑал ÑÑолбÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑа Ñеплики (REPLICA IDENTITY). ÐÑли пÑбликаÑÐ¸Ñ ÑоздаÑÑÑÑ ÑолÑко Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑий INSERT, огÑаниÑений на ÑпиÑок ÑÑолбÑов неÑ.
ÐÐ»Ñ Ð¿ÑбликаÑии опеÑаÑий UPDATE и DELETE ÑÑебÑеÑÑÑ, ÑÑÐ¾Ð±Ñ Ð²ÑÑажение ÑилÑÑÑа ÑÑÑок (Ñо еÑÑÑ Ð¿Ñедложение WHERE) ÑодеÑжало ÑолÑко ÑÑолбÑÑ, вÑ
одÑÑие в иденÑиÑикаÑÐ¾Ñ Ñеплики (REPLICA IDENTITY). ÐÐ»Ñ Ð¿ÑбликаÑии опеÑаÑии INSERT в вÑÑажении WHERE Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð»Ñбой ÑÑолбеÑ. Ð ÑилÑÑÑе ÑÑÑок допÑÑкаÑÑÑÑ Ð¿ÑоÑÑÑе вÑÑажениÑ, не иÑполÑзÑÑÑие полÑзоваÑелÑÑкие ÑÑнкÑии, полÑзоваÑелÑÑкие опеÑаÑоÑÑ, полÑзоваÑелÑÑкие ÑипÑ, полÑзоваÑелÑÑкие пÑавила ÑоÑÑиÑовки, а Ñакже непоÑÑоÑннÑе вÑÑÑоеннÑе ÑÑнкÑии и ÑÑÑлки на ÑиÑÑемнÑе ÑÑолбÑÑ.
ФилÑÑÑ ÑÑÑок ÑаблиÑÑ ÑÑановиÑÑÑ Ð¸Ð·Ð±ÑÑоÑнÑм, когда добавлÑеÑÑÑ Ñказание FOR TABLES IN SCHEMA и ÑаблиÑа пÑÐ¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð¸Ñ Ñказанной ÑÑ
еме.
ÐÐ»Ñ Ð¾Ð¿ÑбликованнÑÑ
ÑекÑиониÑованнÑÑ
ÑÐ°Ð±Ð»Ð¸Ñ ÑилÑÑÑ ÑÑÑок Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑекÑии беÑÑÑÑÑ Ð¸Ð· опÑбликованной ÑекÑиониÑованной ÑаблиÑÑ, еÑли паÑамеÑÑ Ð¿ÑбликаÑии publish_via_partition_root Ñавен true, или из Ñамой ÑекÑии, еÑли он Ñавен false (по ÑмолÑаниÑ). ÐодÑобнее ÑилÑÑÑÑ ÑÑÑок опиÑÐ°Ð½Ñ Ð² Разделе 31.3. ÐналогиÑно, Ð´Ð»Ñ Ð¾Ð¿ÑбликованнÑÑ
ÑекÑиониÑованнÑÑ
ÑÐ°Ð±Ð»Ð¸Ñ ÑпиÑок ÑÑолбÑов Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑекÑии беÑÑÑÑÑ Ð¸Ð· опÑбликованной ÑекÑиониÑованной ÑаблиÑÑ, еÑли паÑамеÑÑ Ð¿ÑбликаÑии publish_via_partition_root Ñавен true, или из Ñамой ÑекÑии, еÑли он Ñавен false.
ÐÐ»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ INSERT ... ON CONFLICT пÑбликаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð²ÑдаваÑÑ Ð¾Ð¿ÐµÑаÑиÑ, к коÑоÑой ÑводиÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°. РзавиÑимоÑÑи Ð¾Ñ Ð¸ÑÑ
ода командÑ, она Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð¿Ñбликована либо как INSERT, либо как UPDATE, либо не бÑÐ´ÐµÑ Ð¾Ð¿Ñбликована вовÑе.
ÐÐ»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ MERGE пÑбликаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð²ÑдаваÑÑ INSERT, UPDATE или DELETE Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ вÑÑавлÑемой, изменÑемой или ÑдалÑемой ÑÑÑоки.
ÐÑиÑоединение (ATTACH) ÑаблиÑÑ Ðº деÑÐµÐ²Ñ ÑекÑиониÑованиÑ, коÑÐµÐ½Ñ ÐºÐ¾ÑоÑого вклÑÑÑн в пÑбликаÑÐ¸Ñ Ñо ÑвойÑÑвом паÑамеÑÑа publish_via_partition_root ÑавнÑм true, не пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº ÑепликаÑии ÑÑÑеÑÑвÑÑÑего ÑодеÑжимого ÑаблиÑÑ.
ÐÐ¾Ð¼Ð°Ð½Ð´Ñ COPY ... FROM пÑбликÑÑÑÑÑ Ð² виде опеÑаÑий INSERT.
ÐпеÑаÑии DDL не пÑбликÑÑÑÑÑ.
ÐÑÑажение пÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ WHERE вÑÑиÑлÑеÑÑÑ Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ñоли, иÑполÑзÑемой Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑепликаÑии.
ÐÑимеÑÑ
Создание пÑбликаÑии, Ð¾Ñ Ð²Ð°ÑÑваÑÑей Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² двÑÑ ÑаблиÑÐ°Ñ :
CREATE PUBLICATION mypublication FOR TABLE users, departments;
Создание пÑбликаÑии, Ð¾Ñ Ð²Ð°ÑÑваÑÑей вÑе изменениÑ, коÑоÑÑе оÑноÑÑÑÑÑ Ðº дейÑÑвÑÑÑим оÑделам:
CREATE PUBLICATION active_departments FOR TABLE departments WHERE (active IS TRUE);
Создание пÑбликаÑии, Ð¾Ñ Ð²Ð°ÑÑваÑÑей вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑÐµÑ ÑаблиÑÐ°Ñ :
CREATE PUBLICATION alltables FOR ALL TABLES;
Создание пÑбликаÑии, оÑ
ваÑÑваÑÑей ÑолÑко опеÑаÑии INSERT в одной ÑаблиÑе:
CREATE PUBLICATION insert_only FOR TABLE mydata
WITH (publish = 'insert');Создание пÑбликаÑии, оÑ
ваÑÑваÑÑей вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² ÑаблиÑаÑ
users, departments и вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑеÑ
ÑаблиÑаÑ
, пÑиÑÑÑÑÑвÑÑÑиÑ
в ÑÑ
еме production:
CREATE PUBLICATION production_publication FOR TABLE users, departments, TABLES IN SCHEMA production;
Создание пÑбликаÑии, оÑ
ваÑÑваÑÑей вÑе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð²Ð¾ вÑеÑ
ÑаблиÑаÑ
, пÑиÑÑÑÑÑвÑÑÑиÑ
в ÑÑ
емаÑ
marketing и sales:
CREATE PUBLICATION sales_publication FOR TABLES IN SCHEMA marketing, sales;
Создание пÑбликаÑии, коÑоÑÐ°Ñ Ð¾Ñ
ваÑÑÐ²Ð°ÐµÑ Ð²Ñе Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑаблиÑÑ users, но ÑеплиÑиÑÑÐµÑ ÑолÑко ÑÑолбÑÑ user_id и firstname:
CREATE PUBLICATION users_filtered FOR TABLE users (user_id, firstname);
СовмеÑÑимоÑÑÑ
CREATE PUBLICATION ÑвлÑеÑÑÑ ÑаÑÑиÑением PostgreSQL.