Cara Modifikasi NULL Kolom Yang Sudah Ada Pada MySQL atau Dengan Laravel
NULL
adalah batasan (constraint) pada sebuah kolom yang menentukan apakah kolom tersebut dapat menyimpan nilai null
atau tidak.
Kolom yang dapat menyimpan nilai null
disebut nullable
.
Kolom yang sudah ada pada tabel bisa dimodifikasi constraint NULL
nya dengan klausa MODIFY
pada ALTER TABLE
statement sql, atau bisa diubah di migration laravel.
Alter Table Modify
Misal ada tabel user
dengan kolom name
yang nullable
.
DESC users;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+----------------+
Saya ingin menghubah kolom name
menjadi tidak nullable
, berikut perintah menghubahnya di sql.
ALTER TABLE users MODIFY name VARCHAR(255) NOT NULL;
Hasilnya.
DESC users;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
+-------+--------------+------+-----+---------+----------------+
Laravel Migration
Misal kolom name
diatas ingin dibalikkan lagi menjadi nullable
.
Untuk mengubah NULL
kolom menggunakan laravel migration, pertama buat migration nya dulu.
php artisan make:migration add_nullable_to_name_on_users --table=users
Buka file migration nya, pada method up
tambahkan kolom name
, panggil method nullable
dan change
.
Schema::table('users', function (Blueprint $table) {
$table->string('name')->nullable()->change();
});
Jalankan migration nya.
php artisan migrate
Cek di database, seharusnya kolom name
menjadi nullable
.
DESC users;
+-------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+----------------+