MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Buat Tabel Hanya jika Tidak Ada di MariaDB

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memigrasikan Amazon RDS (MySQL atau MariaDB) ke Server Lokal

  2. Bagaimana SOUNDEX() Bekerja di MariaDB

  3. Membangun Hot Standby di Amazon AWS Menggunakan MariaDB Cluster

  4. 11 Fungsi untuk Mendapatkan Hari, Bulan, dan Tahun dari Tanggal di MariaDB

  5. DBaaS, cloud, dan perutean kueri transparan