PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kutipan dolar tanpa henti

Beberapa platform tidak mendukung kutipan dolar. Dalam contoh spesifik Anda, Anda harus memiliki titik koma setelah END terakhir . Anda mungkin perlu menambahkan DECLARE pernyataan juga.

DO
$$
DECLARE
BEGIN
    IF (NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'categories')) 
    THEN
        CREATE TABLE IF NOT EXISTS categories
        (
          id   SERIAL NOT NULL,
          name character varying(40),
          CONSTRAINT categories_pkey PRIMARY KEY (id)
        );

        INSERT INTO categories (name) VALUES ('Games');
        INSERT INTO categories (name) VALUES ('Multimedia');
        INSERT INTO categories (name) VALUES ('Productivity');
        INSERT INTO categories (name) VALUES ('Tools');
        INSERT INTO categories (name) VALUES ('Health');
        INSERT INTO categories (name) VALUES ('Lifestyle');
        INSERT INTO categories (name) VALUES ('Other');
    END IF;
END;
$$  LANGUAGE PLPGSQL;

Untuk platform yang tidak mengenali kutipan dolar, Anda dapat menggunakan ' alih-alih. Anda harus keluar dari ' dalam tubuh fungsi anonim sekalipun.

Seperti ini:

DO
'
DECLARE
BEGIN
    IF (NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = ''categories'')) 
    THEN
        CREATE TABLE IF NOT EXISTS categories
        (
          id   SERIAL NOT NULL,
          name character varying(40),
          CONSTRAINT categories_pkey PRIMARY KEY (id)
        );

        INSERT INTO categories (name) VALUES (''Games'');
        INSERT INTO categories (name) VALUES (''Multimedia'');
        INSERT INTO categories (name) VALUES (''Productivity'');
        INSERT INTO categories (name) VALUES (''Tools'');
        INSERT INTO categories (name) VALUES (''Health'');
        INSERT INTO categories (name) VALUES (''Lifestyle'');
        INSERT INTO categories (name) VALUES (''Other'');
    END IF;
END;
'  LANGUAGE PLPGSQL;

DBFiddle untuk melihat contoh kerja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nilai kolom PostgreSQL harus berurutan

  2. SQL Antara klausa dengan kolom string

  3. Mengapa psycopg2 INSERT membutuhkan waktu lama untuk berjalan dalam satu lingkaran dan bagaimana cara mempercepatnya?

  4. Cara menggunakan argumen campuran int dan numerik dalam fungsi Postgres 9.1+

  5. Cara Mengimpor File CSV di PostgreSQL