Создание приложения по аренде велосипедов и внедрение addBike() в базу данных. addCustomer() работал с этим кодом, но я думаю, что это потому, что у него нет внешних ключей. Как вставить в базу данных, когда половина таблицы - это внешние ключи?
Спасибо!
newbike.js:
add() {
bikeService.addBike(
this.wheelsize,
this.frame,
this.gears,
this.typeId,
this.location,
this.orderId,
id => {
history.push('/bike/' + id);
this.props.history.push('/regbike');
}
);
}
}
services.js:
connection.query(
'insert into Bike (wheelsize, frame, gears, typeId, statusId, location, orderId) values (?, ?, ?, ?, ?, ?, ?)',
[wheelsize, frame, gears, typeId, statusId, location, orderId],
(error, results) => {
if (error) return console.error(error);
success(results.insertId);
}
);
}
export let bikeService = new BikeService();



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны отключить проверку ограничений перед вставкой и повторно включить ее после (если вы хотите вставить множество данных)
SET FOREIGN_KEY_CHECKS=0;
а потом, когда вы закончите
SET FOREIGN_KEY_CHECKS=1;
или просто ВСТАВИТЬ ИГНОРИРОВАТЬ
«ВСТАВИТЬ ИГНОРИРОВАТЬ» против «ВСТАВИТЬ... ПРИ ОБНОВЛЕНИИ ДУБЛИКАЦИОННОГО КЛЮЧА»
Все зависит от того, чего вы хотите достичь
Так это будет выглядеть так:
Отключите проверки ограничений.
Вставьте все данные, которые у вас есть, во все связанные таблицы.
Включите проверки ограничений.
а) убедитесь, что вы не потеряли данные.
б) убедиться, что ограничения действительно включены
Вам просто нужно убедиться, что вы правильно установили все столбцы, содержащие внешний ключ.