首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Laravel移动转换外键中的现有列

如何使用Laravel移动转换外键中的现有列
EN

Stack Overflow用户
提问于 2018-07-17 19:57:51
回答 3查看 7.1K关注 0票数 6

我很难将laravel中的列类型更改为兼容列,使其成为引用另一个表id字段的外键。

我有这样一个模式:

代码语言:javascript
复制
Schema::create('person_organization', function(Blueprint $table){
   ...

   $table->integer('organization_id');
   ...
});

我希望将字段organization_id更改为无符号类型,这将使其能够成为引用organizations表中的id字段的外键。

注意:只是在创建表时更改字段类型是不可用的选项,因为系统是在生产模式下运行的。

因此,我们需要进行新的迁移来完成这些更改。

注释2: --我尝试了拉拉博士中描述的方法change,但是它仍然存在一个查询错误,如下所示:

说明\数据库\QueryException: SQLSTATE42000:语法错误或访问冲突: 1064您的MySQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在第1行( SQL : alter person_organization add constraint person_organization_person_id_foreign references (person_id) references persons ()在delete级联上)上使用near‘on delete级联的正确语法。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-17 20:41:54

考虑到您已经在应用程序中安装了原则/dbal包,现在创建迁移php artisan make:migration your_migration_name,然后在迁移中插入以下代码。

代码语言:javascript
复制
    Schema::table('persons', function(Blueprint $table) { 
    $table->integer('organization_id')->unsigned()->index()->change(); 
    $table->foreign('organization_id')->references('id')->on('organizations')- 
  >onDelete('cascade'); 
})

现在运行命令php artisan migrate,现在您就完成了。快乐的编码..。

票数 7
EN

Stack Overflow用户

发布于 2018-07-17 20:10:32

来自Laravel 5.6博士:

在修改列之前,一定要将dbal/dbal依赖项添加到composer.json文件中。

代码语言:javascript
复制
composer require doctrine/dbal

然后创建迁移:

代码语言:javascript
复制
php artisan make:migration add_organization_foreign_to_persons_table --table=persons

和:

代码语言:javascript
复制
Schema::table('persons', function (Blueprint $table) {
    $table->unsignedInteger('organization_id')->change();
    $table->foreign('organization_id')->references('id')->on('organizations');
});
票数 2
EN

Stack Overflow用户

发布于 2018-07-17 20:11:28

代码语言:javascript
复制
$table->integer('organization_id')->unsigned();
$table->foreign('organization_id')->references('id')->on('organizations')->onDelete('cascade');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51389313

复制
相关文章

相似问题

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