В базе данных mysql есть academy
и instructors
. Я хочу, чтобы вставить значения в каждой таблице в следующем порядке (псевдо-код):Вставка значений на основе результатов другой вставки
- первый INSERT INTO
academy
значенийacad_name, address, street, city, state
- второй INSERT INTO
instructors
значенийinstructor_name
- третьего INSERT INTO
academy
значенийinstructor_id
ОТinstructors
\ эти записи должны совпадать с соответствующими даннымиacademy_id
Третья вставка основана на результатах второй вставки instructor_id
, которая является auto_increment. Но я хочу, чтобы третья вставка соответствовала текущей академии значениям, которые были добавлены ранее, как я могу это сделать?
CREATE TABLE IF NOT EXISTS `academy` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(25) NOT NULL,
`academy_id` int(11) NOT NULL,
`instructor_id` int(11) DEFAULT NULL,
`street_address` varchar(50) NOT NULL,
`city` varchar(25) NOT NULL,
`state` varchar(25) NOT NULL,
PRIMARY KEY (`id`),
KEY `instructor_id` (`instructor_id`) // Foreign KEY
);
CREATE TABLE IF NOT EXISTS `instructors` (
`instructor_id` int(11) NOT NULL AUTO_INCREMENT,
`academy_id` int(11) NOT NULL
PRIMARY KEY (`instructor_id`),
KEY `academy_id` (`academy_id`) // Foreign KEY
);
3rd one на самом деле обновляет запись, вставленную в 1-й? – Damodaran
ваш дизайн стола имеет круговой FK! academy_id Иностранный КЛЮЧ в инструкторах и инструктор_ид - это Иностранный КЛЮЧ в таблице академии. – Damodaran
Причина @Damodaran для другого вопроса, заданного ранее, [Stackoverflow] (http://stackoverflow.com/questions/19959164/display-values-from-several-tables-that-share-one-foreign-key/19960089?noredirect = 1 # comment29710299_19960089) –