Мне нужно создать две таблицы с двунаправленным отношением, как показано на рисунке ниже. Но он всегда дает ошибку. Я использую следующий запрос для создания таблиц.Проблемы с двунаправленными отношениями MySQL и зеркальными внешними ключами
CREATE TABLE IF NOT EXISTS `rpt_operation` (
`op_id` int(45) NOT NULL,
`component` int(45) NOT NULL,
`ideal_time` time NOT NULL,
`handling_time` time NOT NULL,
PRIMARY KEY (`op_id`),
INDEX (component),
FOREIGN KEY (component)
REFERENCES rpt_component(comp_id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS `rpt_component` (
`comp_id` int(45) NOT NULL,
`lot_code` int(60) NOT NULL,
`lot_color` varchar(60) NOT NULL,
`drawing_num` int(60) NOT NULL,
`revision_num` int(60) NOT NULL,
`operation` int(45) NOT NULL,
PRIMARY KEY (`comp_id`),
INDEX (operation),
FOREIGN KEY (operation)
REFERENCES rpt_operation(op_id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ошибка появляется в строке component int(45) NOT NULL
из rpt_operation таблицы. Любая помощь будет оценена по достоинству. Заранее спасибо
Во-первых, это, скорее всего, из-за порядка команд, вы можете сначала создать обе таблицы, а затем установить на них индексы. Во всяком случае, «двунаправленное» отношение - это иногда подсказка к лучшему, но обе таблицы в одну большую таблицу (не могут иметь строку в rpt_operation без одного в rpt_component), так как я не вижу разрыва в нормализации, делая это. – Najzero