Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 12.06.2022
Сообщений: 175
1

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

08.04.2024, 12:48. Показов 473. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, форумчане.

MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
-- -----------------------------------------------------
-- Table `Calculation`.`Documents`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Calculation`.`Documents` ;
 
CREATE TABLE IF NOT EXISTS `Calculation`.`Documents` (
  `document_id` INT NOT NULL AUTO_INCREMENT,
  `Clients_client_id` INT NOT NULL,
  `Dept_dept_number` INT NOT NULL,
  `percent` INT NOT NULL,
  `full_sum` DECIMAL NOT NULL,
  PRIMARY KEY (`document_id`),
  INDEX `fk_Documents_Clients1_idx` (`Clients_client_id` ASC) VISIBLE,
  CONSTRAINT `fk_Documents_Clients1`
    FOREIGN KEY (`Clients_client_id`)
    REFERENCES `Calculation`.`Clients` (`client_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
 
 
-- -----------------------------------------------------
-- Table `Calculation`.`Clients`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `Calculation`.`Clients` ;
 
CREATE TABLE IF NOT EXISTS `Calculation`.`Clients` (
  `client_id` INT NOT NULL AUTO_INCREMENT,
  `client_name` VARCHAR(45) NOT NULL,
  `client_adress` VARCHAR(45) NOT NULL,
  `Documents_document_id` INT NOT NULL,
  PRIMARY KEY (`client_id`),
  INDEX `fk_Clients_Documents_idx` (`Documents_document_id` ASC) VISIBLE,
  CONSTRAINT `fk_Clients_Documents`
    FOREIGN KEY (`Documents_document_id`)
    REFERENCES `Calculation`.`Documents` (`document_id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
 
-- -----------------------------------------------------
-- Data for table `Calculation`.`Documents`
-- -----------------------------------------------------
START TRANSACTION;
USE `Calculation`;
INSERT INTO `Calculation`.`Documents` (`document_id`, `Clients_client_id`, `Dept_dept_number`, `percent`, `full_sum`) VALUES (1234, 1, 1, 13, 1000000);
INSERT INTO `Calculation`.`Documents` (`document_id`, `Clients_client_id`, `Dept_dept_number`, `percent`, `full_sum`) VALUES (1235, 2, 2, 13, 2000000);
INSERT INTO `Calculation`.`Documents` (`document_id`, `Clients_client_id`, `Dept_dept_number`, `percent`, `full_sum`) VALUES (1236, 3, 3, 13, 3000000);
INSERT INTO `Calculation`.`Documents` (`document_id`, `Clients_client_id`, `Dept_dept_number`, `percent`, `full_sum`) VALUES (1237, 4, 4, 13, 4000000);
INSERT INTO `Calculation`.`Documents` (`document_id`, `Clients_client_id`, `Dept_dept_number`, `percent`, `full_sum`) VALUES (1238, 5, 5, 13, 5000000);
INSERT INTO `Calculation`.`Documents` (`document_id`, `Clients_client_id`, `Dept_dept_number`, `percent`, `full_sum`) VALUES (1239, 6, 6, 13, 6000000);
INSERT INTO `Calculation`.`Documents` (`document_id`, `Clients_client_id`, `Dept_dept_number`, `percent`, `full_sum`) VALUES (1240, 7, 7, 13, 7000000);
INSERT INTO `Calculation`.`Documents` (`document_id`, `Clients_client_id`, `Dept_dept_number`, `percent`, `full_sum`) VALUES (1241, 8, 8, 13, 8000000);
INSERT INTO `Calculation`.`Documents` (`document_id`, `Clients_client_id`, `Dept_dept_number`, `percent`, `full_sum`) VALUES (1242, 9, 9, 13, 9000000);
INSERT INTO `Calculation`.`Documents` (`document_id`, `Clients_client_id`, `Dept_dept_number`, `percent`, `full_sum`) VALUES (1243, 10, 10, 13, 10000000);
 
COMMIT;
 
 
-- -----------------------------------------------------
-- Data for table `Calculation`.`Clients`
-- -----------------------------------------------------
START TRANSACTION;
USE `Calculation`;
INSERT INTO `Calculation`.`Clients` (`client_id`, `client_name`, `client_adress`, `Documents_document_id`) VALUES (1, 'Ivanov Ivan Ivanovich', 'university street, 100', 1234);
INSERT INTO `Calculation`.`Clients` (`client_id`, `client_name`, `client_adress`, `Documents_document_id`) VALUES (2, 'Petrov Petr Petrovich', 'university street, 107', 1235);
INSERT INTO `Calculation`.`Clients` (`client_id`, `client_name`, `client_adress`, `Documents_document_id`) VALUES (3, 'Sidorov Sidor Sidorovich', 'university street, 106', 1236);
INSERT INTO `Calculation`.`Clients` (`client_id`, `client_name`, `client_adress`, `Documents_document_id`) VALUES (4, 'Ivanova Maria Ivanovna', 'university street, 105', 1237);
INSERT INTO `Calculation`.`Clients` (`client_id`, `client_name`, `client_adress`, `Documents_document_id`) VALUES (5, 'Vovochkin Vovovchka Vovkovich', 'university street, 104', 1238);
INSERT INTO `Calculation`.`Clients` (`client_id`, `client_name`, `client_adress`, `Documents_document_id`) VALUES (6, 'Cristiano Ronaldo', 'Saudian Aravia', 1239);
INSERT INTO `Calculation`.`Clients` (`client_id`, `client_name`, `client_adress`, `Documents_document_id`) VALUES (7, 'Lionel Messi', 'USA', 1240);
INSERT INTO `Calculation`.`Clients` (`client_id`, `client_name`, `client_adress`, `Documents_document_id`) VALUES (8, 'Erling Haaland', 'England', 1241);
INSERT INTO `Calculation`.`Clients` (`client_id`, `client_name`, `client_adress`, `Documents_document_id`) VALUES (9, 'Perparim Hetemaj', 'Finland', 1242);
INSERT INTO `Calculation`.`Clients` (`client_id`, `client_name`, `client_adress`, `Documents_document_id`) VALUES (10, 'Marco Reus', 'Germany', 1243);
 
COMMIT;
Возникает такая вот ошибка, но она появилась внезапно. То есть её не было раньше, всё запускалось нормально. Подскажите пж, в чём дело. Перерыл форумы, узнал, что необходимо удалить данные в дочерней таблице, которые не имеют значения внешнего ключа, соответствующего первичному ключу родительской таблицы.

Но суть не понял
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.04.2024, 12:48
Ответы с готовыми решениями:

Cannot add or update a child row: a foreign key constraint fails
Здравствуйте, имеется ИС Фондовая биржа. Собственно курсовая работа, написана не мной, я полный...

Cannot add or update a child row: a foreign key constraint fails
Здравствуйте! Изучая MySQL и PHP столкнулся с такой вот проблемкой: Cannot add or update a child...

Cannot add or update a child row: a foreign key constraint fails
Доброе время суток. Являюсь полнейшим профаном в MySql и в базах данных собственно тоже....

Ошибка Cannot add or update a child row: a foreign key constraint fails
По заданию фк1 - EMPLOYEE (DEPARTMENT_ID) должен ссылаться на DEPARTMENT(ID), а фк2 -...

5
176 / 74 / 27
Регистрация: 10.11.2023
Сообщений: 198
08.04.2024, 13:42 2
Таблицы Documents и Clients ссылаются друг на друга. Так делать нельзя. Нужна третья промежуточная таблица.
Поищите, посмотрите как организовать связь многие ко многим.
0
3400 / 1319 / 470
Регистрация: 31.05.2012
Сообщений: 4,668
08.04.2024, 14:06 3
Цитата Сообщение от Nepravilon Посмотреть сообщение
Возникает такая вот ошибка, но она появилась внезапно. То есть её не было раньше, всё запускалось нормально
ни какой внезапной ошибки - представленный скрипт ни когда не мог работать без ошибки. Внешний ключ с документов на клиента понятен, а зачем внешний ключ с клиентов на документы?
0
2 / 2 / 0
Регистрация: 12.06.2022
Сообщений: 175
08.04.2024, 15:04  [ТС] 4
Поищите, посмотрите как организовать связь многие ко многим.
Я помню, как это делается. Уже исправил, спасибо)

Добавлено через 37 секунд
а зачем внешний ключ с клиентов на документы?
Я это аргументировал тем, что у одного клиента на руках несколько документов может быть, а в одном документе указаны реквизиты только одного клиента
0
3400 / 1319 / 470
Регистрация: 31.05.2012
Сообщений: 4,668
08.04.2024, 15:47 5
тут только внешний ключ у документов нужен и связь один ко многим и ни каких многие к многим
1
176 / 74 / 27
Регистрация: 10.11.2023
Сообщений: 198
08.04.2024, 15:52 6
Цитата Сообщение от Nepravilon Посмотреть сообщение
а в одном документе указаны реквизиты только одного клиента
и где тут многие ко многим?

многие ко многим это когда запись одной таблицы связана с множеством записей другой таблицы и
одна запись другой таблицы связана с множеством записей первой таблицы.
0
08.04.2024, 15:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2024, 15:52
Помогаю со студенческими работами здесь

Ошибка MySQL: "Cannot add or update a child row: a foreign key constraint fails"
Доброе время суток!! Пытаюсь сделать такой запрос: ALTER TABLE `positions` ADD FOREIGN...

Cannot add or update a child row: a foreign key
В чем может быть проблема?Выводит ошибку :"Cannot add or update a child row: a foreign key...

Error Code: 1822. Failed to add the foreign key constraint. Missing index for constraint 'fk_p_orders_p_stores1' in the
Всем привет, помогите пожалуйста решить проблему. При создании бд вылазит ошибка - Error Code:...

Error Code: 1822. Failed to add the foreign key constraint. Missing index for constraint 'Object' in the referenced tabl
ошибка в возникающая в MySQL Workbench см.скрин (вероятно то, чего касается ошибка).

Error Code: 1822. Failed to add the foreign key constraint
Здравствуйте! При запуске выдает ошибку :( Error Code: 1822. Failed to add the foreign key...

Как исправить ошибку Error Code 1215, cannot add foreign key constraint?
здравствуйте,создал базу данных по жильцам дома и оказываемым им услугам но почему то выдает ошибку...

Ошибка в mysql workbench ERROR: Error 1215: Cannot add foreign key constraint
ERROR: Error 1215: Cannot add foreign key constraint Не могу создать связь с помощью Foreign key...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru