@uib

Как удалить связанные данные?

Я использую ORM Sequelize. И хочу сделать так чтобы удалялись все привязанные данные. Но на данный момент удаляется информация только из первой таблицы, а из таблицы связанной по id удаляется только внешний ключ, а сама информация остается.

const db = require('../config/db.config.js')
const SprWellplatforms = db.spr_wellplatforms
const SprOilfield = db.spr_oilfields
const errorHandler = require('../utils/errorHandler')

module.exports.remove = async function(req, res) {
    try {
        await SprOilfield.destroy({
            where : {
                oilfield_id: req.params.id
            }
        })
        await SprWellplatforms.destroy({
            where: {
                spr_oilfields_id: req.params.id //spr_oilfields_id - это foreign key
            }
        })
        res.status(200).json({
            message: 'Данные удалены.'
        })  
    } catch(e) {
        errorHandler(res, e)
    }
}
  • Вопрос задан
  • 689 просмотров
Решения вопроса 1
Decadal
@Decadal
Прочитайте внимательно этот раздел: docs.sequelizejs.com/class/lib/associations/base.j...

Вам нужно найти on delete cascade. В ваших связях видимо выбран вариант, который приводит к on delete set NULL
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы