Я создал таблицу 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
Пожалуйста, поправьте меня. Где я иду не так.
Я решил это. Таблица member_history_logs должна быть пустой, только тогда вы сможете запустить команду Alter Table.
member_history_logs
пуста. Другой вариант заключается в том, что все значения в столбцеelement_id
таблицыmember_history_logs
существуют в таблицеmembers
. Смотрите db-fiddle (ошибка) и db-fiddle .