外键无法迁移。我在迁移时遇到了一些问题。我已经很好地迁移了公司表

时间:2020-06-24 16:30:57

标签: php laravel foreign-keys laravel-7 artisan-migrate

这是我的代码

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语法有一个错误;请参见语法。在第1行上,检查与您的MariaDB服务器版本相对应的手册,以在'unsigned not null,email varchar(255)not null,phone varchar(255)not null'附近使用正确的语法。 (SQL:创建表employeesid bigint unsigned not null auto_increment主键,first_name varchar(255)不为空,second_name文本不为空,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整理'utf8mb4_unicode_ci')

我坚持这个..寻找上 谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您在这行中遇到的问题:

 $table->string('emp_company')->unsigned();

unsigned仅用于数字列,仅强制使用正数, 字符串列没有UNSIGNED,这毫无意义

只需删除-> unsigned(),您的代码就可以工作....