Limitação de Replicat Paralelo para bancos de dados não Oracle

A ordenação diferente de índices de coluna de chave estrangeira associados à chave primária do Pai faz com que o Replicat parellel falhe. Isso implica que o Replicat paralelo é encerrado nos casos em que o pai tem uma chave primária composta de tal forma que, quando a chave estrangeira que faz referência a ele na tabela filho tem uma ordenação diferente em sua posição ordinal da chave primária.

Por exemplo:

CREATE TABLE atstgt.tgt (
  pk1 VARCHAR(10) NOT NULL,
  pk2 VARCHAR(20) NOT NULL,
  num INT,
) PRIMARY KEY(pk1, pk2);

CREATE TABLE atstgt.child (
  id INT NOT NULL,
  pk2 VARCHAR(10) NOT NULL,
  pk1 VARCHAR(20) NOT NULL,
  details VARCHAR(100),
  CONSTRAINT fk_child FOREIGN KEY (pk1, pk2) REFERENCES atstgt.tgt (pk1, pk2) ON DELETE CASCADE ON UPDATE CASCADE) PRIMARY KEY(id);

Neste exemplo, a chave primária do pai (atstgt.tgt) tem pk1 na posição 1 e pk2 na posição 2. No entanto, na tabela filho, a posição ordinal é invertida e a posição ordinal pk1 3 vem após a posição ordinal pk2's 2. Isso leva a falhas intermitentes no Replicat paralelo com o erro ROW NOT FOUND.

Para evitar esses problemas, garanta que os índices das colunas de chave estrangeira tenham a mesma ordenação na tabela filho quando comparados à ordenação das colunas de chave primária composta na tabela pai, conforme mostrado no seguinte exemplo:

CREATE TABLE atstgt.tgt (
  pk1 VARCHAR(10) NOT NULL,
  pk2 VARCHAR(20) NOT NULL,
  num INT,
) PRIMARY KEY(pk1, pk2);

CREATE TABLE atstgt.child (
  id INT NOT NULL,
  pk1 VARCHAR(10) NOT NULL,
  pk2 VARCHAR(20) NOT NULL,
  details VARCHAR(100),
  CONSTRAINT fk_child FOREIGN KEY (pk1, pk2) REFERENCES atstgt.tgt (pk1, pk2) ON DELETE CASCADE ON UPDATE CASCADE) PRIMARY KEY(id);