Laravel 5.6 работает на: PHP 7.2, MariaDB 10.3
Когда я хочу установить внешний ключ для своей таблицы, я просто продолжаю принимать эту ошибку.
В других таблицах все переменные idопределяется самим Laravel и автоматически увеличивает без знака
Итак, моя миграция выглядит так:
public function up()
{
Schema::create('user_roles', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('role_id');
$table->unsignedInteger('user_id');
$table->foreign('role_id')->references('id')->on('roles')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});
}
Ошибка такая: :
SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1064 В синтаксисе SQL есть ошибка;обратитесь к руководству, соответствующему вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с ') для каскада удаления' в строке 1 (SQL: таблица изменений user_roles
добавить ограничение user_roles_role_id_foreign
ссылки на внешний ключ (role_id
) roles
() при каскаде удаления)
Ошибки, выдаваемые Laravel :
1 PDOException: :( "SQLSTATE [42000]: синтаксическая ошибка илинарушение прав доступа: 1064 У вас есть ошибка в вашем синтаксисе SQL; обратитесь к руководству, соответствующему вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с ') при удалении каскада' в строке 1 ") C: \ xampp \ htdocs \ order-project \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connection.php: 452
2 PDO :: prepare ("изменить таблицу user_roles
добавить ограничение user_roles_role_id_foreign
ссылки на внешний ключ (role_id
)"roles
() при каскаде удаления ") C: \ xampp \ htdocs \ order-project \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connection.php: 452