Я пытаюсь перенести таблицы, созданные в laravel, в базу данных и использовать внешний ключ.Но я получаю следующую ошибку.Пожалуйста, помогите мне, где ошибка?
Подсветка \ База данных \ QueryException: SQLSTATE [42000]: Синтаксическая ошибка или нарушение прав доступа: 1064 У вас есть ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с ')' в строке 1 (SQL: изменить таблицу publications
добавить ограничение publications_user_id_for
eign
ссылки на внешний ключ (user_id
) registrations
())
Трассировка исключений:
PDOException: :( "SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас возникла ошибкав синтаксисе SQL проверьте руководство, соответствующее вашей версии сервера Ma riaDB, чтобы узнать правильный синтаксис для использования рядом с ')' в строке 1 ") C: \ xampp \ htdocs \ plearning \ vendor \ laravel \ framework \ src \ Illuminate \База данных \ Connection.php: 452
PDO :: prepare («изменить таблицу publications
добавить ограничение publications_user
_id_foreign
ссылки на внешний ключ (user_id
) registrations
()»)C: \ xampp \ htdocs \ plearning \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connection.php: 452
Пожалуйста, используйте аргумент -v, чтобы увидеть большедетали.
Родительская таблица является регистрационной, и ее код указан ниже.
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateRegistrationsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('registrations', function (Blueprint $table) {
$table->increments('id'); //primary key
$table->string('tname');
$table->string('fname');
$table->string('domicile');
$table->integer('nic');
$table->integer('phone');
$table->string('email');
$table->string('off_email');
$table->string('password');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('registrations');
}
}
Код второйТаблица d, в которой я использую внешний ключ, является образовательной программой, и ее код приведен ниже.
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateEducationsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('educations', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->refrences('id')->on('registrations');
$table->string('degree');
$table->string('univ');
$table->string('country');
$table->integer('year');
$table->text('research_area');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('educations');
}
}
И третья таблица, в которой я использую также внешний ключ, в качестве первичного ключа таблицы regstration, - публикации и еекод приведен ниже.
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreatePublicationsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('publications', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->refrences('id')->on('registrations');
$table->string('title');
$table->string('status');
$table->integer('year');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('publications');
}
}
Ошибка, над которой я уже вставил.но таблица публикации переносится в базу данных, а две другие таблицы регистрации и обучения не переносятся.