Не удается добавить или обновить дочернюю строку из-за сбоя ограничения. Родительская строка содержит данные - PullRequest
0 голосов
/ 11 октября 2019

Попытка вставить данные через PutDatabaseRecord в NiFi. Я предположил схему через InferAvroSchema. 8 из 16 таблиц вставили данные внутри таблиц, все остальные имеют ошибку «Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется». В родительской таблице есть данные внутри.

При использовании NiFi происходит сбой(«Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не выполняется»), но когда я делаю это через SQL, «Вставить данные в ...» работает.

Родительская таблица:

CREATE OR REPLACE TABLE soccer_city
(
    city_id int(11),
    city varchar(255),
    country_id int(11),
    CONSTRAINT id2
    PRIMARY KEY (city_id),
    FOREIGN KEY (country_id) REFERENCES soccer_country (country_id)
);

Сбой таблицы:

CREATE OR REPLACE TABLE soccer_venue
(
    venue_id int(11),
    venue_name varchar(255),
    city_id int(11),
    aud_capacity int(11),
    CONSTRAINT id3
    PRIMARY KEY (venue_id),
    FOREIGN KEY (city_id) REFERENCES soccer_city (city_id)
);

Схема таблицы:

{
    "type": "record",
    "name": "soccer_venue_schema",
    "fields": 
  [
      {"name": "venue_id", "type": ["null","string"]},
      {"name": "venue_name", "type": ["null","string"]},
      {"name": "city_id", "type": ["null","string"]},
      {"name": "aud_capacity", "type": ["null","string"]}
  ]
}
...