Saltar al contenido

Establecer el inicio del campo Incremento automático desde 1000 en laravel de migración 5.1

Serena, parte de nuestro equipo, nos hizo el favor de redactar este post porque conoce a la perfección dicho tema.

Solución:

Debería ser así (no probado).

use IlluminateDatabaseMigrationsMigration;
use IlluminateSupportFacadesDB;

class MyTableMigration extends Migration 

     /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    
        $statement = "ALTER TABLE MY_TABLE AUTO_INCREMENT = 111111;";
        DB::unprepared($statement);
    

    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    
    

Actualizar

//Your migrations here:
Schema::create('users', function (Blueprint $table) 
    $table->bigIncrements('id')->unsigned();
    $table->integer('qualification_id')->nullable();
    $table->integer('experience_id')->nullable();
);

//then set autoincrement to 1000
//after creating the table
DB::update("ALTER TABLE users AUTO_INCREMENT = 1000;");

Migración para crear una tabla y establecer su valor de incremento automático a partir de Laravel 5.5

public function up()

    Schema::create('users', function (Blueprint $table) 
        $table->increments('id');
        $table->integer('qualification_id')->nullable();
        $table->integer('experience_id')->nullable();
    );

    // Here's the magic
    DB::statement('ALTER TABLE table_name AUTO_INCREMENT = 1000;');

DB::statement() se puede utilizar para ejecutar cualquier instrucción SQL que necesite.

La mayoría de las tablas funcionan con incrementos a partir del siguiente entero más grande.

Siempre se puede insertar un número entero, que es más alto que el índice de incremento automático actual. El índice de incremento automático seguirá automáticamente desde ese nuevo valor +1 hacia arriba.

Entonces, si tiene una tabla recién creada, su índice actual es 0, el siguiente key será 0 + 1 = 1.

Lo que queremos es una primaria. key eso comienza en 1000, entonces lo que hacemos es insertar un registro con un valor de identificación de 999, por lo que la próxima inserción será 1000.

En codigo:

 $startId = 1000;

 DB::table('users')->insert(['id'=> $startId - 1]);
 DB::table('users')->where('id',$startId - 1)->delete();

y ahora tiene una tabla vacía donde la siguiente identificación de inserción debe ser 1000.

Tenga en cuenta que si tiene valores para sembrar en la tabla con valores de identificación startId Necesitas hacer eso antes de usted ejecuta estas declaraciones. De lo contrario, la base de datos arrojará un error de violación de restricción.

Esto debería funcionar independientemente de la base de datos, pero si hay una base de datos que no sigue esta regla de incremento automático, me encantaría saberlo.

Recuerda que puedes recomendar este ensayo si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *