gpt4 book ai didi

php - AWS RDS 的外键约束不起作用

转载 作者:行者123 更新时间:2023-11-29 20:42:54 26 4
gpt4 key购买 nike

我正在尝试将本地 Laravel 数据库迁移到 RDS,我在使用 Elastic beanstalk 时遇到了很多问题,所以我决定采用不同的方式。当我迁移时,我拥有的每个外键都会出现以下错误:

[Illuminate\Database\QueryException] SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint (SQL: alter table videos add constraint videos_object_id_foreign foreign key (object_id) references objects (id) on delete cascade)

PDO异常

[PDOException]
SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint

我研究了 RDS 的外键约束,他们说它们没有强制执行,但它说它们可以用于信息目的。每个外键都是未签名的。

Schema::create('videos', function (Blueprint $table) {

$table->increments('id');
$table->integer('object_id')->unsigned()->nullable();
$table->foreign('object_id')->references('id')->on('objects')->onDelete('cascade');
$table->integer('user_id')->unsigned()->nullable();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->rememberToken();
$table->timestamps();
});

注意:我还尝试在创建表后将外键分为单独的迁移,但没有成功。

最佳答案

要查找具体错误,请运行以下命令:

SHOW ENGINE INNODB STATUS

并查看最新外键错误部分。

子列的数据类型必须与父列完全匹配。

此外,您应该在运行 DDL 之前运行查询 setforeign_key_checks=0,这样您就可以按任意顺序创建表,而不需要在相关子表之前创建所有父表。

关于php - AWS RDS 的外键约束不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com