首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行'knex种子:运行两次由于外键导致错误

问运行'knex种子:运行两次由于外键导致错误
EN

Stack Overflow用户
提问于 2017-10-01 19:37:57
回答 1查看 919关注 0票数 0

我的“用户”表引用了“业务”表。

当我运行两次knex seed:run时,会得到以下错误:

错误:更新或删除表上的“业务”违反表“用户”上的外键约束"users_business_id_foreign“

我现在的种子是这样的:

代码语言:javascript
复制
exports.seed = (knex, Promise) =>
    knex('businesses').del()
        .then(() =>
            knex('businesses').insert([
                {...

用Knex.js解决这个问题的传统方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-02 05:47:15

取决于您正在使用的数据库。但是在使用knex数据库时,传统的方法与传统的方法完全相同。

下面是一些方法(可能有更多有效的方法来做到这一点):

  • 首先删除该表数据,它引用的是您的业务表。
  • 删除单个.with语句中的所有表(只有在postgresql中运行查询后才检查外键约束)
  • 删除事务中的所有表,并设置“先检查外键约束”(mysql)
  • 截断单个TRUNCATE语句中的所有表和序列(postgresql)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46516169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档