我试图在一些表之间建立一些关系,但有一个错误指出。。
illuminate\database\queryexception:sqlstate[42000]:语法错误或访问冲突:1064您的sql语法有错误;检查与mysql服务器版本相对应的手册,以获得在第1行(sql:alter table)的“)”附近使用的正确语法 users
添加约束 users_board_id_foreign
外键( board_id
)引用``())
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email')->unique();
$table->string('password');
$table->foreign('board_id')->unsigned();
$table->foreign('board_id')->references('id')->on('boards');
$table->foreign('message_id')->references('id')->on('messages');
$table->foreign('message_id')->unsigned();
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
这张table应该和这张table有关。。。
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateBoardsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('boards', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 100)->unique();
$table->foreign('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->foreign('link_id')->unsigned();
$table->foreign('link_id')->references('id')->on('links');
$table->foreign('message_id')->unsigned();
$table->foreign('message_id')->references('id')->on('messages');
$table->foreign('tag_id')->unsigned();
$table->foreign('tag_id')->references('id')->on('tags');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('boards');
}
}
我已经删除了表和模式,重新开始,仍然得到相同的错误!请善待我:!
3条答案
按热度按时间wa7juj8i1#
不能使用定义列
foreign()
:这同样适用于
boards
迁移。hujrc8aj2#
我经历了非常相似的情况,我的模式`
公共函数up(){
`我也一样
我通过授予特定用户对特定数据库的访问权限来解决这个问题,瞧,一切都开始像魅力一样运转起来
ktecyv1j3#
试试这个: