Software VPN, Jasa pembuatan website, Hosting Murah, Hosting WordPress, Hosting Indonesia, Hosting terbaik, Hosting lokal murah, Website E-commerce, Website gratis, Website yang menarik, Jasa pembuatan website

Cara Ganti Nama Table Dengan MySQL RENAME TABLE

Dalam tutorial ini, Anda akan belajar cara rename table mysql menggunakan statement MySQL RENAME TABLE dan statement ALTER TABLE.

Biasanya karena requirement pada business flow berubah, terkadang kita mau tidak mau harus untuk mengganti nama tabel saat ini menjadi tabel baru yang lebih sesuai dengan business flow yang baru. MySQL memberi kita statement yang sangat berguna untuk mengubah nama tabel

Untuk mengubah satu atau lebih table , kita menggunakan statement MYSQL RENAME TABLE sebagai berikut:

RENAME TABLE nama_table_lama TO nama_table_baru;

Table lama (nama_table_lama) harus ada, dan table baru (nama_table_baru) tidak boleh ada. Jika tabel baru dengan nama nama_table_baru memang ada, maka statement akan gagal.

Selain table , kita dapat menggunakan statement RENAME TABLE untuk mengganti nama view.

Sebelum kita mengeksekusi statement RENAME TABLE, kita harus memastikan bahwa tidak ada transaksi yang aktif atau table yang terkunci.

Dalam hal keamanan, setiap hak istimewa yang ada yang kami berikan ke tabel lama harus dipindahkan secara manual ke tabel baru.

Sebelum mengganti nama tabel, Anda harus mengevaluasi dampaknya secara menyeluruh. Misalnya, Anda harus menyelidiki aplikasi mana yang menggunakan tabel. Jika nama tabel berubah, maka kode aplikasi yang mengacu pada nama tabel tersebut juga perlu diubah.

Selain itu, Anda harus secara manual menyesuaikan objek database lain seperti tampilan, prosedur tersimpan, pemicu, batasan kunci asing, dll., yang merujuk ke tabel. Kita akan membahas ini secara lebih rinci dalam contoh-contoh berikut.

Contoh MySQL RENAME TABLE

Pertama, kita membuat database baru bernama hr yang terdiri dari dua tabel: employees dan departments untuk demonstrasi.

struktur table hr
CREATE DATABASE IF NOT EXISTS hr;
CREATE TABLE departments (
    department_id INT AUTO_INCREMENT PRIMARY KEY,
    dept_name VARCHAR(100)
);

CREATE TABLE employees (
    id int AUTO_INCREMENT primary key,
    first_name varchar(50) not null,
    last_name varchar(50) not null,
    department_id int not null,
    FOREIGN KEY (department_id)
        REFERENCES departments (department_id)
);

Kedua, kita masukkan data sampel ke dalam tabel employees dan departments:

INSERT INTO departments(dept_name)
VALUES('Sales'),('Marketing'),('Finance'),('Accounting'),('Warehouses'),('Production');
INSERT INTO employees(first_name,last_name,department_id) 
VALUES('John','Doe',1),
		('Bush','Lily',2),
		('David','Dave',3),
		('Mary','Jane',4),
		('Jonatha','Josh',5),
		('Mateo','More',1);

Ketiga, kita meninjau data di tabel depertments dan employees:

SELECT 
    department_id, dept_name
FROM
    departments;
Table departments
SELECT 
    id, first_name, last_name, department_id
FROM
    employees;
cara rename table
Table employees

Jika tabel yang akan Anda ganti namanya direferensikan oleh view, view akan menjadi tidak valid jika Anda mengganti nama tabel, dan Anda harus menyesuaikan view secara manual.

Baca Juga  Cara Install MySQL di Ubuntu 20.04

Misalnya, kita membuat view bernama v_employee_info berdasarkan tabel employees dan departments sebagai berikut:

CREATE VIEW v_employee_info as
    SELECT 
        id, first_name, last_name, dept_name
    from
        employees
            inner join
        departments USING (department_id);

View menggunakan inner join untuk menggabungkan tabel departments dengan employees. Statement SELECT berikut mengembalikan semua data dari view v_employee_info.

SELECT 
    *
FROM
    v_employee_info;

Sekarang kita ganti nama table employees menjadi tabel people dan meminta data dari view v_employee_info lagi.

RENAME TABLE employees TO people;
SELECT 
    *
FROM
    v_employee_info;

MySQL akan mengembalikan pesan kesalahan seperti berikut:

Error Code: 1356. View 'hr.v_employee_info' references invalid table(s) or 
column(s) or function(s) or definer/invoker of view lack rights to use them

Kita dapat memperbaiki kesahalan tersebut dengan menggunakan statement CHECK TABLE untuk memeriksa status tampilan v_employee_info sebagai berikut:

CHECK TABLE v_employee_info;
Check Table

Setelah itu kita perlu mengubah view v_employee_info secara manual sehingga merujuk ke tabel people , bukan tabel employees.

CREATE VIEW v_employee_info as
    SELECT 
        id, first_name, last_name, dept_name
    from
        people
            inner join
        departments USING (department_id);

Penutup

Pada artikel ini kita sudah belajar bagaimana cara rename table di MySQL dengan menggunakan statement MYSQL RENAME TABLE. semoga bermanfaat

Jangan lupa kunjungi Ruang Koding untuk update terbaru lainnya.

Leave a Comment

close