ItSolutionStuff.com

How to Add Primary Key in Laravel Migration?

By Hardik Savani • November 5, 2023
Laravel

Hey everyone,

In this tutorial, we will be delving into the topic of setting primary keys in Laravel migration. By the end of this article, you will have a clear understanding of how to create primary keys through Laravel migration. If you're seeking an example to guide you on how to add a primary key in Laravel migration, look no further. Should you have any queries regarding the addition of primary keys in Laravel migration, rest assured that a straightforward example with a solution will be provided.

In this example, i will show you how to add primary key using laravel migration. we will use id() and primary() to add mysql primary key to table in laravel.

You will see the following examples:

1. Laravel Migration Add Primary Key using id()

2. Laravel Migration Add Primary Key using primary()

3. Laravel Migration Drop Primary Key

So, let's see the following one by one example:

Example 1: Laravel Migration Add Primary Key using id()

Here, we will create products table with add Primary Key to id column.

Create new migration using following command:

php artisan make:migration create_products_table

Now, You can update it as like the bellow:

database/migrations/migration_name.php

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

return new class extends Migration

{

/**

* Run the migrations.

*/

public function up(): void

{

Schema::create('products', function (Blueprint $table) {

$table->id();

$table->string('name');

$table->text('description');

$table->timestamps();

});

}

/**

* Reverse the migrations.

*/

public function down(): void

{

Schema::dropIfExists('products');

}

};

Now, you are ready to run migration command:

php artisan migrate

You will see the layout as like the below:

Example 2: Laravel Migration Add Primary Key using primary()

Here, we will create products table with drop Primary Key to code column.

Create new migration using following command:

php artisan make:migration create_products_table

Now, You can update it as like the bellow:

database/migrations/migration_name.php

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

return new class extends Migration

{

/**

* Run the migrations.

*/

public function up(): void

{

Schema::create('products', function (Blueprint $table) {

$table->integer('id');

$table->string('name');

$table->string('code')->primary();

$table->text('description');

$table->timestamps();

});

}

/**

* Reverse the migrations.

*/

public function down(): void

{

Schema::dropIfExists('products');

}

};

Now, you are ready to run migration command:

php artisan migrate

Example 3: Laravel Migration Drop Primary Key

Here, we will create products table with drop Primary Key to id column.

First of all we need to install "doctrine/dbal" composer package. This package allow to use change() method to update datatype using laravel migration.

composer require doctrine/dbal

Create new migration using following command:

php artisan make:migration drop_primary_key

Now, You can update it as like the bellow:

database/migrations/migration_name.php

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

return new class extends Migration

{

/**

* Run the migrations.

*/

public function up(): void

{

Schema::table('products', function (Blueprint $table) {

$table->integer('id')->unsigned()->change();

$table->dropPrimary('id');

});

}

/**

* Reverse the migrations.

*/

public function down(): void

{

Schema::dropIfExists('products');

}

};

Now, you are ready to run migration command:

php artisan migrate

I hope it can help you...

Hardik Savani

Hardik Savani

I'm a full-stack developer, entrepreneur, and founder of ItSolutionStuff.com. Passionate about PHP, Laravel, JavaScript, and helping developers grow.

📺 Subscribe on YouTube

We Are Recommending You

How to Drop Unique Constraint in Laravel Migration?

Read Now →

Laravel Migration Unique Multiple Columns Example

Read Now →

How to Add Unique Constraint in Laravel Migration?

Read Now →

How to Add Boolean Column in Laravel Migration?

Read Now →

How to Change Column Position in Laravel Migration?

Read Now →

How to Migrate SQL File in Laravel Migration?

Read Now →

Laravel Migration Execute SQL Query Example

Read Now →

Laravel Migration Remove Default Value Example

Read Now →

Laravel Migration Change Datatype Timestamp to Datetime Example

Read Now →

Laravel Migration Change Default Value Example

Read Now →

Laravel Migration Change Datatype Varchar to Text Example

Read Now →

Laravel Migration Add Column After Column Example

Read Now →

Laravel Migration Enum Default Value Example

Read Now →

How to Change Table Name using Laravel Migration?

Read Now →

How to Remove Column from Table in Laravel Migration?

Read Now →