程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Laravel 8 - 强制模式在列定义中添加主键 [已修复]大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Laravel 8 - 强制模式在列定义中添加主键 [已修复]?

开发过程中遇到Laravel 8 - 强制模式在列定义中添加主键 [已修复]的问题如何解决?下面主要结合日常开发的经验,给出你关于Laravel 8 - 强制模式在列定义中添加主键 [已修复]的解决方法建议,希望对你解决Laravel 8 - 强制模式在列定义中添加主键 [已修复]有所启发或帮助;

我将创建一个带有 char 列作为 priMary key 的表,并在其他表上使用它作为。 这是迁移:

scheR_813_11845@a::create('users',function (Blueprint $tablE) {
    $table->ID();
    $table->char('country_ID',2)->index();
    $table->foreign('country_ID')->references('ID')->on('countrIEs')->ondelete('reStrict');
});

scheR_813_11845@a::create('countrIEs',function (Blueprint $tablE) {
    $table->char('ID',2)->priMary();
});

Laravel 通过 @R_489_2763@ 之后的 create table 在 char 列上添加索引,如下例所示:

create table `users` (
    `ID` BIGINT UNSIGNED NOT NulL auto_INCREMENT PRIMary KEY,`country_ID` CHAR(2) NOT NULL,...
) ... ENGINE = INNODB;
@R_489_2763@ `users` ADD CONSTraiNT `users_country_ID_foreign` FOREIGN KEY (`country_ID`) REFERENCES `countrIEs` (`ID`) ON deletE REStriCT;
@R_489_2763@ `users` ADD INDEX `users_country_ID_index`(`country_ID`);

create table `countrIEs` (
    `ID` CHAR(2) NOT NULL,...
) ... ENGINE = INNODB;
@R_489_2763@ `countrIEs` ADD PRIMary KEY `countrIEs_ID_priMary`(`ID`);

并且它总是失败,因为在创建表 countrIEs 时,对 countrIEs.ID 的约束已经存在并且国家表定义必须在 ID 列上有一个索引,否则会出现以下错误:

@H_920_3@missing index for consTraint 'users_country_ID_foreign' in the referenced table 'countrIEs'

如何强制 scheR_813_11845@a 压缩 ID 列定义中的索引(不是通过 @R_489_2763@)以避免错误? 如下:

...
create table `countrIEs` (
    `ID` CHAR(2) NOT NULL PRIMary KEY,...
) ... ENGINE = INNODB;
...

编辑(修复):

在@P.K.Tharindu 的帮助下,我刚刚将 countrIEs 迁移文件重命名为 users 迁移文件之前的日期,而 Laravel 在 users 文件之前运行它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

大佬总结

以上是大佬教程为你收集整理的Laravel 8 - 强制模式在列定义中添加主键 [已修复]全部内容,希望文章能够帮你解决Laravel 8 - 强制模式在列定义中添加主键 [已修复]所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:-8