Код ошибки: 1452 не может добавить или обновить дочернюю строку, ограничение внешнего ключа завершается ошибкой MySQL

0

Я создал таблицу member_history_logs.

        CREATE TABLE 'member_history_logs' (
          'id' int(11) NOT NULL AUTO_INCREMENT,
          'element_id' int(11) NOT NULL,
          'status' varchar(1) DEFAULT NULL,
          'start_date' datetime NOT NULL,
          'end_date' datetime DEFAULT NULL,
          PRIMARY KEY ('id'),
          KEY 'status' ('status'),
          KEY 'element_id' ('element_id')
        ) ENGINE=InnoDB AUTO_INCREMENT=134 DEFAULT CHARSET=utf8;

Существует другая таблица с именами, состоящими из

    'id', 'int(11)', 'NO', 'PRI', NULL, 'auto_increment'
    'description', 'varchar(100)', 'NO', '', NULL, ''
    'short_name', 'varchar(1)', 'YES', '', NULL, ''

Я хочу выполнить таблицу изменений

alter table member_history_logs добавить внешний ключ (element_id) ссылки members (id);

Я получаю следующую ошибку:

Error Code:1452 cannot add or update a child row a foreign key constraint fails mysql

Пожалуйста, поправьте меня. Где я иду не так.

Теги:

1 ответ

0
Лучший ответ

Я решил это. Таблица member_history_logs должна быть пустой, только тогда вы сможете запустить команду Alter Table.

  • 0
    Одним из вариантов является то, что таблица member_history_logs пуста. Другой вариант заключается в том, что все значения в столбце element_id таблицы member_history_logs существуют в таблице members . Смотрите db-fiddle (ошибка) и db-fiddle .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню