• ENTRAR
  • No hay productos en el carrito.

Error MariaDB Foreign Key

Viendo 4 publicaciones - del 1 al 4 (de un total de 4)
  • Autor
    Publicaciones
  • #11325

    Miriam Moreno
    Participante

    Hola,

     

    Estoy intentando crear la Foreign Key y me da este error al ejecutar el comando php artisan migrate:

      [Illuminate\Database\QueryException]
      SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at lin
      e 1 (SQL: alter table users add constraint users_role_id_foreign foreign key (role_id) references roles ())
    
    
      [PDOException]
      SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at lin
      e 1
    
    

    He estado mirando el código y según veo no hay diferencia con el del video, aunque está claro que algo se me escapa…

    Este es mi código de las dos últimas migrations:

    class CreateRolesTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('roles', function (Blueprint $table) {
                $table->increments('id');
                $table->string("name", 10)->unique();
                $table->timestamps();
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('roles');
        }
    }
    
    
    class AddFkUsersRoleId extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::table('users', function($table) {
                $table->integer('role_id')->unsigned()->default(2);
                $table->foreign('role_id')->reference('id')->on('roles');
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::table('users', function($table) {
                DB::statement('SET FOREIGN_KEY_CHECKS = 0');
                $table->dropForeign(['role_id']);
                $table->dropColumn('role_id');
                DB::statement('SET FOREIGN_KEY_CHECKS = 1');
            });
        }
    }
    

     

    #11326

    Cursosdesarrolloweb
    Jefe de claves

    Hola Miriam,

    El único error que veo es el siguiente.

    
    $table->foreign('role_id')->reference('id')->on('roles');
    

    Debería ser references, no reference.

    
    $table->foreign('role_id')->references('id')->on('roles');
    

    No sé si será ese el error que estás teniendo, quedo a la espera de tu respuesta.

    Un saludo.

    #11327

    Miriam Moreno
    Participante

    Eso era!!

    He repasado el código mil veces y no lo he visto …

     

    Muchas gracias!! 🙂

     

     

    #11328

    Cursosdesarrolloweb
    Jefe de claves

    Genial Miriam, ¡que rápido :)!, recuerda que tienes todos los archivos del curso con el código finalizado y te puedes apoyar en ellos si lo necesitas.

    Un saludo y gracias por la rápida confirmación.

Viendo 4 publicaciones - del 1 al 4 (de un total de 4)

Debes estar registrado para responder a este debate.

Síguenos en las redes sociales para estar al tanto de los últimas novedades :)

Facebook
Facebook
Google+
Google+
https://www.cursosdesarrolloweb.es/forums/topic/error-mariadb-foreign-key">
Pinterest
Pinterest
top
Cursosdesarrolloweb ©. Todos los derechos reservados.
🔓Inscríbete a cualquier curso por 9€ y accede a todos los cursos gratuitos para siempre🔓
🌍Los cursos gratuitos son exclusivos de esta plataforma, ÚLTIMOS CURSOS EN 4K🌍
+ +

Login

Create an Account Back to login/register