一般错误:1215 无法在 Laravel 中添加外键约束

2024-04-23

进行迁移时我收到此错误: SQLSTATE[HY000]:一般错误:1215 无法添加外键约束(SQL:alter tablebooks添加约束books_writer_id_foreign外键(writer_id) 参考writers (id)) 我尝试了很多事情,但没有人看起来能起作用。

2018_02_18_3165165_create_books_table.php

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateBooksTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('books', function (Blueprint $table) {
            $table->engine = 'InnoDB';

            $table->increments('id');


            $table->string('name');
            $table->text('description');

            $table->integer('numPages');
            $table->enum('language', ['spanish', 'english']);

            $table->date('wrote_date')->nullable();


            $table->timestamp('created_at')->useCurrent();
            $table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
        });
        Schema::table('books', function (Blueprint $table) {
            $table->integer('writer_id')->unsigned();
            $table->foreign('writer_id')->references('id')->on('writers');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('books');
    }
}

2018_02_18_192915_create_writers_表

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateWritersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('writers', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->text('description');

            $table->string('nationality');
            $table->date('year_date')->nullable();
            $table->date('dead_date')->nullable();

            $table->timestamp('created_at')->useCurrent();
            $table->timestamp('updated_at')->default(DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('writers');
    }
}

Edit: 该错误是因为第一次迁移是书籍,然后是作者导致了该错误。


有时根据我的经验,太接近的时间戳会破坏代码并引发异常,因为程序认为 writers 表是在 books 表尝试更改 writers_table 时间戳后创建的,例如:
2018_02_16_31615

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一般错误:1215 无法在 Laravel 中添加外键约束 的相关文章

  • 如何验证使用 php 上传的文件不包含可执行二进制文件?

    使用简单的 Firefox 插件 黑客可以更改他们想要上传的任何文件的 MIME 类型 绕过文件类型检查器 然后 黑客可以使用 GIMP 等程序将 php 脚本嵌入到图像 音频或任何其他文件的二进制数据中 我该如何检查并防止这种情况发生 您
  • 如何比较两个字符串的大小写和变音符号不敏感?

    我有两根弦 字符串 1 塞巴斯蒂安 字符串 2 塞巴斯蒂安 我想通过忽略 重音 字符来比较这两个字符串 谁能知道这个逻辑吗 提前致谢
  • 如何计算加权平均值?

    我的语言是PHP 但是算法应该是相当通用的 我有一个关联数组 比方说 评级和评级次数 ratings array 1 gt 1 2 gt 3 3 gt 6 4 gt 3 5 gt 3 这相当于 1 2 2 2 3 3 3 3 3 3 4 4
  • Node.js 进行 rsa 加密的正确方法?

    我正在尝试创建一个 WS 来发出肥皂请求 在消息正文中有一个包含加密文本的字段 我有公钥来加密文本 但我获得的唯一结果是文本无法识别 我使用节点的加密模块来发出请求 并且文本已加密 但我不知道为什么没有正确加密 PS我用 openssl p
  • PHP 相等变量

    我想知道是否有任何方法可以检查大量变量是否相等 如果我只有几个变量 我可以这样做 if a b a c b c 但是 如果我有 20 个变量 则需要一些时间来编写所有组合 还有其他方法吗 if count array unique arra
  • 如何从控制器访问 Zend Framework 应用程序的配置?

    我有一个基于 Zend 框架的应用程序快速开始 http framework zend com docs quickstart setup 我已经让演示工作起来 现在正在实例化一个新的模型类来完成一些实际工作 在我的控制器中 我想将配置参数
  • 我可以在一个查询中更新/选择表吗?

    我需要在查看页面时选择数据并更新 视图 列 有没有一种方法可以在一个查询中执行此操作 或者我是否必须使用不同的查询 如果您不想 不需要使用事务 则可以创建一个存储过程 该过程首先更新视图计数 然后选择值并将其返回给用户
  • PHP mkdir() 和 fopen() 不起作用 - 权限问题? umask问题?

    以下 PHP 脚本无法创建目录 它也将无法创建文件 当目录已经存在时 ini set error reporting E ALL define ABSPATH SERVER DOCUMENT ROOT echo ABSPATH br br
  • 如何在Sequelize中从主模型同一级别的包含模型返回结果?

    这是我在项目中完成的代码和结果 我想获得包含模型的结果与主模型相同的结果 下面的代码是我所做的 序列化查询 User findAll include model Position attributes POSITION NAME then
  • 通过ajax执行后期操作时如何克服CORS重定向问题?

    我可以通过外部登录表单中的 post 方法类型提交表单来登录 roundcube 实例 托管在另一台服务器上 我收到此错误 通过 ajax 签名时 XMLHttpRequest 无法加载https 192 168 0 7 mail http
  • 隐藏产品价格和添加到购物车按钮,但不隐藏 WooCommerce 中未注册用户的变体

    在我的 WooCommerce 商店中 我想隐藏价格 直到客户登录为止 我有以下代码可以实现这一点 add action init hide price function hide price if is user logged in re
  • 高效插入和更新时检查唯一性

    我的员工表中有 2 列 每列值必须是唯一的 staff code staff name staff id staff code staff name 1 MGT Management 2 IT IT staff 当向表中插入或更新项目时 我
  • 与 array_intersect 相反?

    是否有一个内置函数可以获取数组 1 中不存在于数组 2 中的所有成员 我知道如何以编程方式执行此操作 只是想知道是否有一个内置函数可以执行相同的操作 所以请不要提供代码示例 这听起来像是一份工作array diff http www php
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 如何解决 MySQL innodb 在 TRUNCATE TABLE 上“等待表元数据锁”?

    在 GitLab CI 服务器中运行包含数百个应用程序单元测试的测试套件 运行 10 次测试后 不知怎的 它总是卡在等待 TRUNCATE TABLE 上的表元数据锁上 这是一个拆卸步骤 我知道SHOW ENGINE INNODB STAT
  • PHP简单的html dom解析器与wordpress冲突吗?

    PHP简单的html dom解析器与wordpress冲突吗 因为每当我尝试将其与此代码一起包含在我的标头中时 一切都变成空白 感谢您提前提供任何帮助 当我尝试在 HTML 文档中使用 PHP 包含时 我遇到了同样的问题 但当我使用func
  • 如何在种子实体框架版本 6.x 中通过 AddOrUpdate 方法插入身份[重复]

    这个问题在这里已经有答案了 我有一个具有身份列的实体 作为数据种子的一部分 我想对系统中的 标准数据 使用特定的标识符值 我不想禁用身份 只有我想在迁移种子中设置 IDENTITY INSERT ON 我的代码是 protected ove
  • SQL:查找每个跑步者跑步之间的平均天数

    因此 如果我们给出下表 runner ran Carol 2011 02 01 Alice 2011 02 01 Bob 2011 02 01 Carol 2011 02 02 Bob 2011 02 02 Bob 2011 02 03 B
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • 如何移动 Zend_Layout 的“视图”

    通常它会是这样的结构 application modules somemodule views scripts index index phtml 我如何将其移动到 application templates somemodule temp

随机推荐

  • Spring:文件上传RESTFUL Web服务

    我正在使用 Spring 4 0 为 RESTFUL Web 服务创建 POC 如果我们只传递字符串或任何其他基本数据类型 它就可以正常工作 RequestMapping value upload file method RequestMa
  • 适用于 MYSQL 的 Logstash Jdbc 输入插件

    我在 Windows 中使用 Logstash 我无法安装输入 jdbc 插件 因此我手动下载了 zip 文件 并将插件中的logstash 文件夹放入我的logstash 1 5 2 文件夹中 文件夹结构 D elastic search
  • Matplotlibight_layout——删除多余的白色/空白区域

    我想尽量减少人物周围的空白 但不确定如何 a 为我的图像周围的 savefig 命令精确指定一个边界框 并且 b 为什么紧密布局命令在我的工作示例中不起作用 In my current example I set up an axis en
  • 使 ASP.NET MVC 应用程序为 Web Farm 做好准备

    使 ASP NET MVC 应用程序 Web 场做好准备的最有效方法是什么 最重要的是共享当前用户的信息 上下文 和 不太重要 缓存的对象 例如查找项目 州 街道类型 县等 我听说过 读过 MemCache 但还没有看到关于如何实现和测试它
  • PHP 将整数转换为 hh:mm:ss

    我有一个 hh mm ss 格式的字符串 我将其转换为表示总秒数的整数 例如 01 43 03 01 3600 43 60 03 1 上面的示例生成整数值 6183 使用该值执行一些逻辑后 我需要将整数转换回严格的 hh mm ss 格式
  • ActiveAdmin:按子对象计数过滤

    在严重依赖 ActiveAdmin 的 Ruby on Rails 应用程序中 我有一个赞助商模型 它与赞助商模型关联 一sponsor可以资助很多孩子 所以一个sponsor可以有很多sponsorships 我想做的是能够在赞助商索引页
  • 无法使用 RVM、Ruby 1.9.2 和 Rails 3 运行 RubyMine 调试器

    我已经设置了全新的 Ubuntu 安装并遵循本指南 http ryanbigg com 2010 12 ubuntu ruby rvm rails and you安装 RVM Ruby 1 9 2 和 Rails 3 然后我安装了RubyM
  • ADAL.js 和 MSAL.js 有什么区别?

    我正在尝试处理使用 Microsoft Graph 的应用程序的身份验证 这两个库有什么区别 JavaScript 的 Active Directory 身份验证库 ADAL js https github com AzureAD azur
  • java中如何读取xep文件数据

    有没有办法在 pdf 完全渲染之前获取总页数并输入我们提供 xml 文件 xslt 是页面布局的样式表 我们使用 RenderX 从 xslt 进行 pdf 转换 将其转换为 xsl fo 文件 从 xsl fo 转换为 xep 文件 从
  • Foreman/Puma 未使用开发环境中指定的端口

    我在 application yml 中将端口设置为 3000 figaro 管理环境变量 rails s使用端口 3000 但当我跑步时foreman start 根据 Heroku 的推荐 我得到以下输出 14 53 23 web 1
  • 错误:找不到函数“geom_sf”

    我目前在 Windows 上运行 R 版本 3 4 2 并拥有 ggplot2 通过 tidyverse 和 sf 包版本 3 4 2 我正在尝试使用 ggplot2 sf 套件来绘制空间数据 尝试运行 geom sf 时 我收到错误 co
  • 为什么我的解密方法抛出“要解密的数据长度无效”加密异常

    这是一个非常常见的异常 但显然我找到的解决方案都没有解决我的问题 我有一个加密和一个解密方法 我加密一个字符串并将其写入文件 然后从文件中读取该字符串并解密 理论上 事实上 我得到了一个 加密异常 要解密的数据长度无效 在该过程的解密方面
  • 为什么在 Rust 中无法在不引用其中之一的情况下连接两个字符串?

    这有效 let hello Hello to string let world world let hello world hello world 但这并没有 let hello Hello to string let world worl
  • 如何在windows上安装mongoDB?

    我正在尝试测试 mongoDB 看看它是否适合我 我下载了 32 位 Windows 版本 但不知道如何继续 我通常使用 WAMP 服务在本地计算机上进行开发 我可以在 Wamp 上运行 mongoDB 吗 但是 使它在 Windows 上
  • T-SQL 去除所有非字母和非数字字符

    有没有一种更聪明的方法来删除所有特殊字符 而不是使用一系列大约 15 个嵌套替换语句 以下代码有效 但仅处理三个字符 与号 空格和句点 select CustomerID CustomerName Replace Replace Repla
  • 在 bash 中使用 ssh 内的 Expect 执行 sudo

    我想创建一个脚本来自动在多个 Linux 主机上进行安装 我使用 ssh 密钥登录到主机 在登录中我想做一个 sudo 我正在尝试使用 Expect 我在站上有它 但是我的服务器上没有运行脚本 我该怎么做 这是我的尝试 但没有运气 bin
  • 如何以编程方式将审阅者分配给 Azure DevOps Pull 请求?

    我知道如何使用 gitHttpClient 在 VSTS 中创建拉取请求 如下所示gitHttpClient CreatePullRequestAsync gitPullRequest repositoryId Result 但我不知道如何
  • Permission_required 装饰器不适合我

    我不明白为什么需要许可的装饰器不起作用 我想只允许工作人员访问视图 我努力了 permission required request user is staff login url admin def series info request
  • 使用 sql helper(Microsoft.ApplicationBlocks.Data) 时出现超时问题

    我在处理长sql查询时遇到超时问题 长查询超时的数据集是 static public DataSet Getxxxx Guid xxxx DataSet ds SqlHelper ExecuteDataset ConnectionStrin
  • 一般错误:1215 无法在 Laravel 中添加外键约束

    进行迁移时我收到此错误 SQLSTATE HY000 一般错误 1215 无法添加外键约束 SQL alter tablebooks添加约束books writer id foreign外键 writer id 参考writers id 我