Theo mặc định, tất cả dữ liệu từ tất cả các tỷ lệ kèo bóng đá được công bố sẽ được sao chép thành các thuê bao thích hợp. Dữ liệu được sao chép có thể được giảm bằng cách sử dụngBộ lọc tỷ lệ kèo bóng đá. Người dùng có thể chọn sử dụng các bộ lọc tỷ lệ kèo bóng đá cho lý do hành vi, bảo mật hoặc hiệu suất. Nếu một bảng được xuất bản đặt bộ lọc tỷ lệ kèo bóng đá, một tỷ lệ kèo bóng đá chỉ được sao chép nếu dữ liệu của nó thỏa mãn biểu thức bộ lọc tỷ lệ kèo bóng đá. Điều này cho phép một tập hợp các bảng được sao chép một phần. Bộ lọc tỷ lệ kèo bóng đá được xác định cho mỗi bảng. Sử dụng AWHERE
mệnh đề sau tên bảng cho mỗi bảng được công bố yêu cầu dữ liệu được tỷ lệ kèo bóng đá ra. TheWHERE
mệnh đề phải được đặt bởi dấu ngoặc đơn. Nhìn thấyTạo ấn phẩmĐể biết chi tiết.
Bộ lọc tỷ lệ kèo bóng đá được áp dụngtrướcXuất bản các thay đổi. Nếu bộ lọc tỷ lệ kèo bóng đá đánh giá làSai
ornull
Sau đó tỷ lệ kèo bóng đá không được nhân rộng. Theở đâu
Biểu thức mệnh đề được đánh giá với cùng một vai trò được sử dụng cho kết nối sao chép (nghĩa là vai trò được chỉ định trongKết nối
mệnh đề củaTạo đăng ký). Bộ lọc tỷ lệ kèo bóng đá không có tác dụng chocắt ngắn
lệnh.
TheWHERE
mệnh đề chỉ cho phép các biểu thức đơn giản. Nó không thể chứa các chức năng, toán tử, loại và đối chiếu do người dùng xác định
Nếu một ấn phẩm xuất bảnCập nhật
hoặcXóa
Hoạt động, bộ lọc tỷ lệ kèo bóng đáWHERE
mệnh đề phải chỉ chứa các cột được bao phủ bởi danh tính bản sao (xemNhận dạng bản sao
). Nếu một ấn phẩm chỉ xuất bảnChèn
Hoạt động, Bộ lọc tỷ lệ kèo bóng đáWHERE
mệnh đề có thể sử dụng bất kỳ cột nào.
bất cứ khi nàoCập nhật
được xử lý, biểu thức bộ lọc tỷ lệ kèo bóng đá được đánh giá cho cả tỷ lệ kèo bóng đá cũ và tỷ lệ kèo bóng đá mới (nghĩa là sử dụng dữ liệu trước và sau khi cập nhật). Nếu cả hai đánh giá làTRUE
, nó sao chépCập nhật
Thay đổi. Nếu cả hai đánh giá làSai
, nó không sao chép thay đổi. Nếu chỉ một trong các tỷ lệ kèo bóng đá cũ/mới phù hợp với biểu thức bộ lọc tỷ lệ kèo bóng đá,Cập nhật
được chuyển đổi thànhChèn
hoặcXóa
, để tránh mọi sự không nhất quán về dữ liệu. tỷ lệ kèo bóng đá trên thuê bao sẽ phản ánh những gì được xác định bởi biểu thức bộ lọc tỷ lệ kèo bóng đá trên nhà xuất bản.
Nếu tỷ lệ kèo bóng đá cũ thỏa mãn biểu thức bộ lọc tỷ lệ kèo bóng đá (nó được gửi đến thuê bao) nhưng tỷ lệ kèo bóng đá mới thì không, từ góc độ thống nhất dữ liệu, tỷ lệ kèo bóng đá cũ sẽ được xóa khỏi thuê bao. Vì vậy,Cập nhật
được chuyển thành AXóa
.
Nếu tỷ lệ kèo bóng đá cũ không thỏa mãn biểu thức bộ lọc tỷ lệ kèo bóng đá (nó không được gửi đến người đăng ký) nhưng tỷ lệ kèo bóng đá mới thì, từ góc độ thống nhất dữ liệu, tỷ lệ kèo bóng đá mới nên được thêm vào thuê bao. Vì vậy,Cập nhật
được chuyển thànhChèn
.
tỷ lệ kèo bóng đá 31.1Tóm tắt các phép biến đổi được áp dụng.
tỷ lệ kèo bóng đá 31.1.Cập nhật
Tóm tắt chuyển đổi
tỷ lệ kèo bóng đá cũ | tỷ lệ kèo bóng đá mới | Transformation |
---|---|---|
Không phù hợp | Không phù hợp | không sao chép |
Không phù hợp | khớp | Chèn |
khớp | Không phù hợp | Xóa |
khớp | khớp | Cập nhật |
Nếu ấn phẩm chứa tỷ lệ kèo bóng đá được phân vùng, tham số xuất bảnpublish_via_partition_root
Xác định bộ lọc tỷ lệ kèo bóng đá nào được sử dụng. Nếu nhưpublish_via_partition_root
làTRUE
, Thetỷ lệ kèo bóng đá phân vùng gốcBộ lọc tỷ lệ kèo bóng đá được sử dụng. Nếu không, nếupublish_via_partition_root
làSai
(mặc định), mỗiPhân vùngBộ lọc tỷ lệ kèo bóng đá được sử dụng.
Nếu đăng ký yêu cầu sao chép dữ liệu tỷ lệ kèo bóng đá đã tồn tại trước và một ấn phẩm chứaWHERE
Điều khoản, chỉ dữ liệu thỏa mãn các biểu thức bộ lọc tỷ lệ kèo bóng đá được sao chép vào thuê bao.
Nếu đăng ký có một số ấn phẩm trong đó một tỷ lệ kèo bóng đá đã được xuất bản với khác nhauWHERE
mệnh đề, tỷ lệ kèo bóng đá thỏa mãnanycủa các biểu thức sẽ được sao chép. Nhìn thấyPhần 31.3.6Để biết chi tiết.
Vì đồng bộ hóa dữ liệu ban đầu không tính đếnxuất bản
Tham số Khi sao chép dữ liệu bảng hiện tại, một số tỷ lệ kèo bóng đá có thể được sao chép sẽ không được sao chép bằng DML. Tham khảoPhần 31.7.1, và xemPhần 31.2.2cho các ví dụ.
Nếu thuê bao trong bản phát hành trước 15, hãy sao chép dữ liệu tồn tại trước không sử dụng các bộ lọc tỷ lệ kèo bóng đá ngay cả khi chúng được xác định trong ấn phẩm. Điều này là do các bản phát hành cũ chỉ có thể sao chép toàn bộ dữ liệu bảng.
Nếu đăng ký có một số ấn phẩm trong đó cùng một bảng đã được xuất bản với các bộ lọc tỷ lệ kèo bóng đá khác nhau (cho cùng mộtxuất bản
Hoạt động), những biểu thức đó được tạo ra cùng nhau, để các tỷ lệ kèo bóng đá thỏa mãnbất kỳcủa các biểu thức sẽ được nhân rộng. Điều này có nghĩa là tất cả các bộ lọc tỷ lệ kèo bóng đá khác cho cùng một bảng trở nên dư thừa nếu:
Một trong những ấn phẩm không có bộ lọc tỷ lệ kèo bóng đá.
Một trong những ấn phẩm đã được tạo bằng cách sử dụngcho tất cả các tỷ lệ kèo bóng đá
. Mệnh đề này không cho phép các bộ lọc tỷ lệ kèo bóng đá.
Một trong những ấn phẩm đã được tạo bằng cách sử dụngcho các tỷ lệ kèo bóng đá trong lược đồ
và bảng thuộc về lược đồ được giới thiệu. Mệnh đề này không cho phép các bộ lọc tỷ lệ kèo bóng đá.
Tạo một số tỷ lệ kèo bóng đá sẽ được sử dụng trong các ví dụ sau.
test_pub =# Tạo tỷ lệ kèo bóng đá T1 (A Int, B Int, C văn bản, Khóa chính (A, C)); Tạo tỷ lệ kèo bóng đá test_pub =# Tạo tỷ lệ kèo bóng đá T2 (d int, e int, f int, khóa chính (d)); Tạo tỷ lệ kèo bóng đá test_pub =# tạo tỷ lệ kèo bóng đá t3 (g int, h int, i int, phím chính (g)); Tạo tỷ lệ kèo bóng đá
Tạo một số ấn phẩm. Xuất bảnP1
Có một tỷ lệ kèo bóng đá (T1
) Và bảng đó có bộ lọc tỷ lệ kèo bóng đá. Xuất bảnP2
có hai tỷ lệ kèo bóng đá. BànT1
không có bộ lọc tỷ lệ kèo bóng đá và bảngT2
có bộ lọc tỷ lệ kèo bóng đá. Xuất bảnP3
có hai bảng và cả hai đều có bộ lọc tỷ lệ kèo bóng đá.
test_pub =# Tạo ấn phẩm P1 cho tỷ lệ kèo bóng đá T1 trong đó (a 5 và c = 'nsw'); Tạo ấn phẩm test_pub =# Tạo ấn phẩm P2 cho tỷ lệ kèo bóng đá T1, T2 trong đó (E = 99); Tạo ấn phẩm test_pub =# Tạo ấn phẩm P3 cho tỷ lệ kèo bóng đá T2 trong đó (d = 10), T3 trong đó (g = 10); Tạo ấn phẩm
PSQL
có thể được sử dụng để hiển thị các biểu thức bộ lọc tỷ lệ kèo bóng đá (nếu được xác định) cho mỗi ấn phẩm.
test_pub =# \ DRP+ Xuất bản P1 Chủ sở hữu | Tất cả các tỷ lệ kèo bóng đá | Chèn | Cập nhật | Xóa | Cắt ngắn | Thông qua root ----------+------------+---------+---------+---------+-----------+-------------- Postgres | f | t | t | t | t | f tỷ lệ kèo bóng đá: "public.t1" ở đâu ((a 5) và (c = 'nsw' :: văn bản))) Xuất bản P2 Chủ sở hữu | Tất cả các tỷ lệ kèo bóng đá | Chèn | Cập nhật | Xóa | Cắt ngắn | Thông qua root ----------+------------+---------+---------+---------+-----------+-------------- Postgres | f | t | t | t | t | f tỷ lệ kèo bóng đá: "public.t1" "public.t2" ở đâu (e = 99) Ấn phẩm P3 Chủ sở hữu | Tất cả các tỷ lệ kèo bóng đá | Chèn | Cập nhật | Xóa | Cắt ngắn | Thông qua root ----------+------------+---------+---------+---------+-----------+-------------- Postgres | f | t | t | t | t | f tỷ lệ kèo bóng đá: "public.t2" ở đâu (d = 10) "public.t3" ở đâu (g = 10)
PSQL
có thể được sử dụng để hiển thị các biểu thức bộ lọc tỷ lệ kèo bóng đá (nếu được xác định) cho mỗi bảng. Xem bảng đóT1
là thành viên của hai ấn phẩm, nhưng chỉ có bộ lọc tỷ lệ kèo bóng đá trongP1
. Xem tỷ lệ kèo bóng đá đóT2
là thành viên của hai ấn phẩm và có bộ lọc tỷ lệ kèo bóng đá khác nhau trong mỗi bộ phận.
test_pub =# \ d t1 tỷ lệ kèo bóng đá "public.t1" Cột | Loại | Đối chiếu | Vô hiệu | Mặc định --------+---------+-----------+----------+--------- A | Số nguyên | | không phải null | B | Số nguyên | | | C | Văn bản | | không phải null | Chỉ mục: Khóa chính "T1_PKEY", Btree (A, C) Ấn phẩm: "P1" ở đâu ((a 5) và (c = 'nsw' :: văn bản)) "P2" test_pub =# \ d t2 tỷ lệ kèo bóng đá "public.t2" Cột | Loại | Đối chiếu | Vô hiệu | Mặc định --------+---------+-----------+----------+--------- D | Số nguyên | | không phải null | E | Số nguyên | | | f | Số nguyên | | | Chỉ mục: Khóa chính "T2_PKEY", Btree (D) Ấn phẩm: "P2" ở đâu (E = 99) "P3" ở đâu (d = 10) test_pub =# \ d t3 tỷ lệ kèo bóng đá "public.t3" Cột | Loại | Đối chiếu | Vô hiệu | Mặc định --------+---------+-----------+----------+--------- g | Số nguyên | | không phải null | H | Số nguyên | | | Tôi | Số nguyên | | | Chỉ mục: Khóa chính "T3_PKEY", Btree (G) Ấn phẩm: "P3" ở đâu (g = 10)
Trên nút thuê bao, tạo tỷ lệ kèo bóng đáT1
Với định nghĩa tương tự như trên nhà xuất bản và cũng tạo đăng kýS1
Đăng ký xuất bảnP1
.
test_sub =# Tạo tỷ lệ kèo bóng đá T1 (A Int, B Int, C văn bản, Khóa chính (A, C)); Tạo tỷ lệ kèo bóng đá test_sub =# Tạo đăng ký S1 test_sub-# kết nối 'host = localhost dbname = test_pub applice_name = s1' test_sub-# xuất bản P1; Tạo đăng ký
Chèn một số tỷ lệ kèo bóng đá. Chỉ các tỷ lệ kèo bóng đá thỏa mãnT1 trong đó
mệnh đề xuất bảnP1
được sao chép.
test_pub =# chèn vào các giá trị T1 (2, 102, 'nsw'); Chèn 0 1 test_pub =# chèn vào các giá trị T1 (3, 103, 'qld'); Chèn 0 1 test_pub =# chèn vào các giá trị T1 (4, 104, 'Vic'); Chèn 0 1 test_pub =# chèn vào các giá trị T1 (5, 105, 'hành động'); Chèn 0 1 test_pub =# chèn vào các giá trị T1 (6, 106, 'nsw'); Chèn 0 1 test_pub =# chèn vào các giá trị T1 (7, 107, 'nt'); Chèn 0 1 test_pub =# chèn vào các giá trị T1 (8, 108, 'qld'); Chèn 0 1 test_pub =# chèn vào các giá trị T1 (9, 109, 'nsw'); Chèn 0 1 test_pub =# Chọn * từ T1; A | B | c ---+-----+----- 2 | 102 | NSW 3 | 103 | QLD 4 | 104 | Vic 5 | 105 | HÀNH ĐỘNG 6 | 106 | NSW 7 | 107 | Nt 8 | 108 | QLD 9 | 109 | NSW (8 tỷ lệ kèo bóng đá)
test_sub =# Chọn * từ T1; A | B | c ---+-----+----- 6 | 106 | NSW 9 | 109 | NSW (2 tỷ lệ kèo bóng đá)
Cập nhật một số dữ liệu, trong đó tỷ lệ kèo bóng đá cũ và mới có giá trị cả hai thỏa mãnT1 trong đó
mệnh đề xuất bảnP1
. TheCập nhật
sao chép thay đổi như bình thường.
test_pub =# cập nhật T1 Đặt b = 999 trong đó a = 6; Cập nhật 1 test_pub =# Chọn * từ T1; A | B | c ---+-----+----- 2 | 102 | NSW 3 | 103 | QLD 4 | 104 | Vic 5 | 105 | HÀNH ĐỘNG 7 | 107 | Nt 8 | 108 | QLD 9 | 109 | NSW 6 | 999 | NSW (8 tỷ lệ kèo bóng đá)
test_sub =# Chọn * từ T1; A | B | c ---+-----+----- 9 | 109 | NSW 6 | 999 | NSW (2 tỷ lệ kèo bóng đá)
Cập nhật một số dữ liệu, trong đó các giá trị tỷ lệ kèo bóng đá cũ không thỏa mãnT1 trong đó
mệnh đề xuất bảnP1
, nhưng các giá trị tỷ lệ kèo bóng đá mới sẽ thỏa mãn nó. TheCập nhật
được chuyển thànhChèn
và thay đổi được nhân rộng. Xem tỷ lệ kèo bóng đá mới trên thuê bao.
test_pub =# cập nhật T1 Đặt A = 555 trong đó a = 2; Cập nhật 1 test_pub =# Chọn * từ T1; A | B | c -----+-----+----- 3 | 103 | QLD 4 | 104 | Vic 5 | 105 | HÀNH ĐỘNG 7 | 107 | Nt 8 | 108 | QLD 9 | 109 | NSW 6 | 999 | NSW 555 | 102 | NSW (8 tỷ lệ kèo bóng đá)
test_sub =# Chọn * từ T1; A | B | c -----+-----+----- 9 | 109 | NSW 6 | 999 | NSW 555 | 102 | NSW (3 tỷ lệ kèo bóng đá)
Cập nhật một số dữ liệu, trong đó các giá trị tỷ lệ kèo bóng đá cũ thỏa mãnT1 trong đó
mệnh đề xuất bảnP1
, nhưng các giá trị tỷ lệ kèo bóng đá mới không thỏa mãn nó. TheCập nhật
được biến thành AXóa
và thay đổi được nhân rộng. Xem rằng tỷ lệ kèo bóng đá bị xóa khỏi thuê bao.
test_pub =# cập nhật t1 đặt c = 'Vic' trong đó a = 9; Cập nhật 1 test_pub =# Chọn * từ T1; A | B | c -----+-----+----- 3 | 103 | QLD 4 | 104 | Vic 5 | 105 | HÀNH ĐỘNG 7 | 107 | Nt 8 | 108 | QLD 6 | 999 | NSW 555 | 102 | NSW 9 | 109 | Vic (8 tỷ lệ kèo bóng đá)
test_sub =# Chọn * từ T1; A | B | c -----+-----+----- 6 | 999 | NSW 555 | 102 | NSW (2 tỷ lệ kèo bóng đá)
Các ví dụ sau đây cho thấy tham số xuất bảnpublish_via_partition_root
Xác định xem bộ lọc tỷ lệ kèo bóng đá của bảng cha hoặc con sẽ được sử dụng trong trường hợp các bảng được phân vùng.
Tạo tỷ lệ kèo bóng đá được phân vùng trên nhà xuất bản.
test_pub =# tạo tỷ lệ kèo bóng đá cha (khóa chính int) phân vùng theo phạm vi (a); Tạo tỷ lệ kèo bóng đá test_pub =# Tạo tỷ lệ kèo bóng đá phân vùng con của mặc định cha; Tạo tỷ lệ kèo bóng đá
Tạo cùng một tỷ lệ kèo bóng đá trên thuê bao.
test_sub =# tạo tỷ lệ kèo bóng đá cha mẹ (khóa chính int) phân vùng theo phạm vi (a); Tạo tỷ lệ kèo bóng đá test_sub =# Tạo tỷ lệ kèo bóng đá phân vùng con của mặc định cha mẹ; Tạo tỷ lệ kèo bóng đá
Tạo ấn phẩmP4
, và sau đó đăng ký vào nó. Tham số xuất bảnpublish_via_partition_root
được đặt là đúng. Có các bộ lọc tỷ lệ kèo bóng đá được xác định trên cả hai bảng được phân vùng (Cha mẹ
) và trên phân vùng (con
).
test_pub =# Tạo ấn phẩm P4 cho cha mẹ trong đó (a <5), con trong đó (a = 5) test_pub-# với (publish_via_partition_root = true); Tạo ấn phẩm
test_sub =# Tạo đăng ký S4 test_sub-# kết nối 'host = localhost dbname = test_pub applice_name = s4' test_sub-# xuất bản P4; Tạo đăng ký
Chèn một số giá trị trực tiếp vàocha mẹ
vàcon
Bảng. Họ sao chép bằng bộ lọc tỷ lệ kèo bóng đá củacha mẹ
(vìpublish_via_partition_root
là đúng).
test_pub =# chèn vào các giá trị cha mẹ (2), (4), (6); Chèn 0 3 test_pub =# chèn vào các giá trị con (3), (5), (7); Chèn 0 3 test_pub =# select * từ thứ tự cha của a; Một --- 2 3 4 5 6 7 (6 tỷ lệ kèo bóng đá)
test_sub =# Chọn * từ thứ tự cha của A; Một --- 2 3 4 (3 tỷ lệ kèo bóng đá)
Lặp lại cùng một bài kiểm tra, nhưng với giá trị khác vớipublish_via_partition_root
. Tham số xuất bảnpublish_via_partition_root
được đặt là sai. Bộ lọc tỷ lệ kèo bóng đá được xác định trên phân vùng (con
).
test_pub =# thả xuất bản P4; Thả xuất bản test_pub =# Tạo ấn phẩm P4 cho cha mẹ, con trong đó (a = 5) test_pub-# với (publish_via_partition_root = false); Tạo ấn phẩm
test_sub =# thay đổi đăng ký S4 Xuất bản làm mới; Thay đổi đăng ký
Thực hiện các phần chèn trên nhà xuất bản giống như trước đây. Họ sao chép bằng bộ lọc tỷ lệ kèo bóng đá củacon
(vìpublish_via_partition_root
là sai).
test_pub =# cha mẹ cắt ngắn; Bàn cắt ngắn test_pub =# chèn vào các giá trị cha (2), (4), (6); Chèn 0 3 test_pub =# chèn vào các giá trị con (3), (5), (7); Chèn 0 3 test_pub =# select * từ thứ tự cha của a; Một --- 2 3 4 5 6 7 (6 tỷ lệ kèo bóng đá)
test_sub =# select * từ đơn đặt tỷ lệ kèo bóng đá con bởi a; Một --- 5 6 7 (3 tỷ lệ kèo bóng đá)
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không phù hợp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.