外键不迁移。我在迁移方面遇到了一些问题。我已经很好地迁移公司表
Posted
技术标签:
【中文标题】外键不迁移。我在迁移方面遇到了一些问题。我已经很好地迁移公司表【英文标题】:foreign key not migrate. I have some problems with migrations. I already well migrate company table 【发布时间】:2020-10-14 23:49:43 【问题描述】:这是我的代码
Schema::create('employees', function (Blueprint $table)
$table->id();
$table->string('first_name');
$table->text('second_name');
$table->string('emp_company')->unsigned();
$table->string('email');
$table->string('phone');
$table->timestamps();
$table->foreign('emp_company')->references('company_name')->on('companies');
);
这是我的错误:
SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行(SQL:create表 employees
(id
bigint unsigned not null auto_increment 主键, first_name
varchar(255) not null, second_name
text not null, emp_company
varchar(255) unsigned not null, email
varchar(255 ) not null, phone
varchar(255) not null, created_at
timestamp null, updated_at
timestamp null) 默认字符集 utf8mb4 collate 'utf8mb4_unicode_ci')
我坚持这个 .. 寻找 sup 谢谢。
【问题讨论】:
字符串不能无符号,只有数字字段 【参考方案1】:我认为你的问题在这一行:
$table->string('emp_company')->unsigned();
unsigned 仅用于数字列,仅强制正数, 字符串列没有UNSIGNED,没意义
只需删除 ->unsigned() 并且您的代码应该可以工作....
【讨论】:
以上是关于外键不迁移。我在迁移方面遇到了一些问题。我已经很好地迁移公司表的主要内容,如果未能解决你的问题,请参考以下文章