Cara Membuat Table Temporary Di MySQL

Pada tutorial MySQL kali ini, kita akan belajar tentang Cara Membuat Table Temporary. Sesuai dengan namanya, table temporary adalah table yang bersifat sementara. Table temporary hanya ada ketika session active, dan dihapus ketika Anda keluar dari program MySQL.

Fungsi table temporary biasanya digunakan sebagai table penampung sementara. Misalkan untuk melakukan perhitungan aritmatika, sebelum hasilnya di simpan dalam actual table (table sebenarnya).

Table temporary ini hanya ada untuk MySQL versi 3.2.3 keatas.

Untuk membuat sebuah table temporary, Anda dapat menggunakan perintah CREATE TEMPORARY TABLE.

Sintak Dasar



Di bawah ini adalah sintak dasar dari perintah CREATE TEMPORARY TABLE di MySQL:

CREATE TEMPORARY TABLE temporary_table_name(
   column_name1 data_type [NOT NULL] [AUTO INCREMENT],
   column_name2 data_type [NOT NULL],
   column_name3 data_type [NOT NULL],
   ...
   column_nameN data_type [NOT NULL],
   PRIMARY KEY(one or more column)
);

Atau Anda juga bisa membuat table temporary dengan mengcopy dari table aktual, menggunakan sintak berikut:

CREATE TEMPORARY TABLE temporary_table_name
AS SELECT * FROM table_name;

Penjelasan sintak:
  • temporary_table_name adalah nama untuk table temporary yang akan Anda buat.
  • Sedangkan table_name adalah actual table yang akan dicopy stuktur dan data-datanya.

Contoh


Sebagai contoh, coba Anda tampilkan daftar table yang terdapat di database dengan menjalankan perintah berikut ini:

mysql> SHOW TABLES;
+----------------+
| Tables_in_hris |
+----------------+
| employee       |
| employee_clone |
+----------------+
2 rows in set (0.00 sec)

Dari kedua table diatas, coba Anda buat sebuah table temporary dengan nama "employee_temp" yang struktur dan data-datanya diambil dari table "employee"?

Untuk melakukannya, Anda dapat menjalankan perintah berikut ini:

mysql> CREATE TEMPORARY TABLE employee_temp
    -> AS SELECT * FROM employee;
Query OK, 5 rows affected (0.28 sec)
Records: 5  Duplicates: 0  Warnings: 0

Apabila keluar pesan "Query OK", berarti Anda telah sukses membuat sebuah table temporary. Coba Anda tampilkan kembali daftar table dengan menggunkana perintah berikut:

mysql> SHOW TABLES;
+----------------+
| Tables_in_hris |
+----------------+
| employee       |
| employee_clone |
+----------------+
2 rows in set (0.00 sec)

Dan ternyata, table temporary yang telah Anda buat tidak ada di daftar table. Itu karena perintah SHOW TABLES hanya menampilkan table-table yang actual bukan temporer.

Sekarang coba Anda tampilkan struktur dan data-data dari table temporary dengan menjalankan perintah berikut ini:

mysql> DESC employee_temp;
+---------------+---------------+------+-----+---------+-------+
| Field         | Type          | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| employee_id   | varchar(5)    | NO   |     | NULL    |       |
| employee_name | varchar(20)   | NO   |     | NULL    |       |
| gender        | char(1)       | NO   |     | NULL    |       |
| address       | varchar(20)   | YES  |     | NULL    |       |
| salary        | decimal(10,0) | YES  |     | NULL    |       |
| departemen    | varchar(5)    | NO   |     | NULL    |       |
+---------------+---------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

mysql> SELECT * FROM employee_temp;
+-------------+---------------+--------+----------+---------+------------+
| employee_id | employee_name | gender | address  | salary  | departemen |
+-------------+---------------+--------+----------+---------+------------+
| 001         | Nursalim      | L      | Jakarta  | 3000000 | IT         |
| 002         | Naura         | P      | Bandung  | 2000000 | HRD        |
| 003         | Ahmad         | L      | Semarang | 5000000 | ACC        |
| 004         | Nani          | P      | Surabaya | 2500000 | FIN        |
| 005         | Nurul         | P      | Tegal    | 4500000 | FIN        |
+-------------+---------------+--------+----------+---------+------------+
5 rows in set (0.00 sec)

Sekarang coba Anda keluar dari MySQL console dengan mengetikan perintah 'quit' seperti berikut ini:

mysql> quit
Bye

Coba Anda masuk ke MySQL console kembali dan tampilkan data dari table temporary diatas.

# mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.5.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use hris;
Database changed
mysql> SELECT * FROM employee_temp;
ERROR 1146 (42S02): Table 'hris.employee_temp' doesn't exist

Dan ternyata, table temporary yang telah Anda buat sudah tidak ada..hehehe..

Share this

Related Posts

Previous
Next Post »