外键不迁移。我在迁移方面遇到了一些问题。我已经很好地迁移公司 table
foreign key not migrate. I have some problems with migrations. I already well migrate company table
这是我的代码
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 行 'unsigned not null, email
varchar(255) not null, phone
varchar(255) not null,' 附近使用的正确语法 (SQL: create table 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) default character set utf8mb4 collate 'utf8mb4_unicode_ci')
我坚持这个..寻找支持
谢谢。
我认为你的问题在这一行:
$table->string('emp_company')->unsigned();
unsigned 仅用于数字列,强制只有正数,
字符串列没有UNSIGNED,没有意义
只需删除 ->unsigned() 并且您的代码应该可以工作....
这是我的代码
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 行 'unsigned not null, email
varchar(255) not null, phone
varchar(255) not null,' 附近使用的正确语法 (SQL: create table 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) default character set utf8mb4 collate 'utf8mb4_unicode_ci')
我坚持这个..寻找支持 谢谢。
我认为你的问题在这一行:
$table->string('emp_company')->unsigned();
unsigned 仅用于数字列,强制只有正数, 字符串列没有UNSIGNED,没有意义
只需删除 ->unsigned() 并且您的代码应该可以工作....