How to Add Unique Constraint in Laravel Migration?
Hello there,
In this article, we will discuss how to add unique constraint in Laravel migration. If you're searching for an example of adding a unique constraint in Laravel migration, you've come to the right place. We will explore an example of a unique column in a Laravel migration. I'll also provide guidance on making a column unique in Laravel migration. So, without further ado, let's get into the specifics.
Laravel migration offers the unique() method as a means to include a unique constraint. I will now provide a straightforward example of how to incorporate a unique constraint through Laravel migration. Additionally, you can also add multiple unique constraints and remove existing ones. Let us now delve into a simple illustration of this process.
You will see the following examples:
1. Laravel Migration Add Unique Constraint
2. Laravel Migration Add Multiple Unique Constraint
3. Laravel Migration Add Multiple Unique Constraint 2
4. Laravel Migration Drop Unique Constraint
let's see the one by one.
Example 1: Laravel Migration Add Unique Constraint
Here, we will create products table with add Unique Constraint 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->id();
$table->string('name');
$table->string('code')->unique();
$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 Multiple Unique Constraint
Here, we will create products table with add Unique Constraint to code and contact_email column.
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->string('code');
$table->string('contact_email');
$table->text('description');
$table->timestamps();
$table->unique('code');
$table->unique('contact_email');
});
}
/**
* 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 3: Laravel Migration Add Multiple Unique Constraint 2
Here, we will create products table with add Unique Constraint to code and contact_email 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->string('code');
$table->string('contact_email');
$table->text('description');
$table->timestamps();
$table->unique(['code', 'contact_email']);
});
}
/**
* 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 4: Laravel Migration Drop Unique Constraint
Here, we will create products table with drop Unique Constraint to code column.
Create new migration using following command:
php artisan make:migration change_datatype_column
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->dropUnique('products_code_unique');
});
}
/**
* 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
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- How to Change Column Position in Laravel Migration?
- How to Migrate SQL File in Laravel Migration?
- Laravel Migration Execute SQL Query Example
- Laravel Migration Remove Default Value Example
- Laravel Migration Change Datatype Timestamp to Datetime Example
- Laravel Migration Change Datatype Date to Datetime Example
- Laravel Migration Change Datatype String to Integer Example
- Laravel Migration Change Datatype Varchar to Text Example
- Laravel Migration Change Datatype Text to Longtext Example
- How to Create Migration in Laravel 10?
- Laravel Migration Enum Default Value Example
- Laravel Migration - How to Add New Column in Existing Table ?
- How to Remove Column from Table in Laravel Migration?