Arhn - архитектура программирования

при обновлении дубликата ключа происходит сбой с ошибкой Невозможно добавить или обновить дочернюю строку

У меня есть таблица с составным первичным ключом "имя" и "идентификатор". Поля на самом деле «имя», «идентификатор», «телефон», «количество», «единицы», «псевдоним». у меня есть запрос

 insert into MyTable (name,id,phone,amount) select "henry" as name, id,phone,amount from anotherTable
 on duplicate key update phone=values(phone),amount=values(amount).

MySQL выдает следующую ошибку:

 Cannot add or update a child row: a foreign key constraint fails.

Кстати, "id" - это внешний ключ.

Любая помощь?

как указано ниже, схема для другой таблицы

 CREATE TABLE `otherTable` (
 `otherId` int(11) NOT NULL AUTO_INCREMENT,
 `DOBId` int(11) NOT NULL,
 `bankAccount` int(11) DEFAULT NULL,
 `partialAmount` int(11) NOT NULL DEFAULT '0',
 `id` int(11) NOT NULL,
 `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `notes` varchar(299) DEFAULT NULL,
 `latitude` decimal(8,5) DEFAULT NULL,
 `longitude` decimal(8,5) DEFAULT NULL,
  PRIMARY KEY (`otherId `),
  KEY `DOBId ` (`DOBId `),
  KEY `bankAccount ` (`bankAccount `),
  KEY `id ` (`id `)
) ENGINE=InnoDB AUTO_INCREMENT=3305 DEFAULT CHARSET=utf8;

для моей таблицы

CREATE TABLE `myTable` (
  `name` int(11) NOT NULL,
  `id` int(11) NOT NULL,
  `appleNumber` int(11) DEFAULT NULL,
  `amount` int(11) DEFAULT NULL,
  `windowsNumber` int(11) DEFAULT NULL,
  `phone` int(11) DEFAULT NULL,
  `pens` int(11) DEFAULT NULL,
  `pencils` int(11) DEFAULT NULL,
  PRIMARY KEY (`name`,`id`),
  KEY `id` (`id`),
  CONSTRAINT `myTable_ibfk_1` FOREIGN KEY (`id`) REFERENCES `yet_another` (`id`)
28.02.2012

  • Можете ли вы опубликовать схему MyTable? 29.02.2012
  • Почему myTable.name имеет тип int(11)? 29.02.2012
  • Извините, это не настоящая таблица; запрещено публиковать настоящие имена. определение точное, но я изменил имена на лету. 29.02.2012

Ответы:


1

Проблема заключается в том, что ограничение FK, которое у вас есть для myTable, ссылается на идентификаторы yet_another, поэтому, когда вы вставляете идентификаторы из anotherTable, вы нарушаете это ограничение FK. Скорее всего, в таблице anotherTable есть идентификаторы, которых нет в таблице yet_another.

Поймите, что это выстрел в темноте, основанный на абстрактной схеме, которую вы опубликовали. Если вам нужен более надежный ответ, мне нужно увидеть реальную схему.

29.02.2012

2

Ключ дублирования применяется к первичному ключу. Я так понимаю, вы используете innodb. Это не работает с ограничением внешнего ключа. Какие значения вашей таблицы MyTable являются внешними ключами? Пожалуйста, опубликуйте оператор создания для таблицы, которая показывает все ключи и ограничения для получения более подробной помощи.

Просто предположение, но для усмешки я держу пари, что это столбец, которого нет во вставке, которая является внешним ключом, не допускающим нулевое значение.

28.02.2012
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..