Di MariaDB, Anda dapat menggunakan IF NOT EXISTS
klausa dari CREATE TABLE
pernyataan untuk memeriksa apakah tabel dengan nama yang sama sudah ada di database sebelum membuatnya.
Tabel hanya akan dibuat jika belum ada tabel dengan nama yang sama.
Contoh
Berikut ini contoh untuk didemonstrasikan:
CREATE TABLE IF NOT EXISTS t1 (
c1 INT,
c2 VARCHAR(10)
);
Di sini, t1
adalah nama tabel, dan semua yang berada di antara tanda kurung adalah definisi tabel (yaitu kolom, dll).
Dalam hal ini, tabel hanya akan dibuat jika belum ada yang bernama t1
.
Periksa bahwa Tabel Sekarang Sudah Ada
Kami dapat menanyakan information_schema.tables
tabel untuk memeriksa apakah tabel tersebut sekarang ada:
SELECT EXISTS (
SELECT
TABLE_NAME
FROM
information_schema.tables
WHERE
TABLE_SCHEMA LIKE 'zap' AND
TABLE_TYPE LIKE 'BASE TABLE' AND
TABLE_NAME = 't1'
);
Hasil:
1
Di sini, zap
adalah nama database, dan t1
adalah nama tabel yang saya periksa keberadaannya.
1
berarti tabelnya ada. Jika tidak ada, kami akan mendapatkan 0
.
Coba Buat Tabel Lagi
Sekarang jika kita mencoba membuat tabel itu lagi:
CREATE TABLE IF NOT EXISTS t1 (
c1 INT,
c2 VARCHAR(10)
);
Kami tidak mendapatkan kesalahan:
Query OK, 0 rows affected, 1 warning (0.002 sec)
Tapi kami mendapat peringatan.
Jadi mari kita periksa peringatannya:
SHOW WARNINGS;
Hasil:
+-------+------+---------------------------+ | Level | Code | Message | +-------+------+---------------------------+ | Note | 1050 | Table 't1' already exists | +-------+------+---------------------------+
Seperti yang diharapkan, ini memberi tahu kita bahwa tabel sudah ada.
Tanpa IF NOT EXISTS
Klausa
Inilah yang terjadi jika kita tidak menggunakan IF NOT EXISTS
klausa ketika mencoba membuat tabel yang sudah ada:
CREATE TABLE t1 (
c1 INT,
c2 VARCHAR(10)
);
Kali ini kami mendapatkan kesalahan:
ERROR 1050 (42S01): Table 't1' already exists
Perhatikan bahwa IF NOT EXISTS
klausa tidak memeriksa struktur/definisi tabel. Ini hanya memeriksa bahwa tidak ada tabel yang ada dengan nama yang sama yang kami coba berikan ke tabel yang kami buat.
Dengan kata lain, hanya karena tabel dengan nama tersebut sudah ada, bukan berarti tabel tersebut memiliki definisi yang benar.