sql >> Database >  >> RDS >> PostgreSQL

Onbeëindigde dollarkoers

Sommige platforms ondersteunen geen dollarquotering. In uw specifieke voorbeeld zou u een puntkomma moeten hebben na de laatste END . Mogelijk moet u een DECLARE . toevoegen verklaring ook.

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;

Voor platforms die het citeren van dollars niet herkennen, kunt u ' . gebruiken in plaats van. U moet elke ' . escapen in de hoofdtekst van de anonieme functie.

Vind ik leuk:

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 om een ​​werkend voorbeeld te bekijken.



  1. MySQL Sortering van alle tabellen wijzigen

  2. Het berekenen van het verschil van datums in Postgresql

  3. Database van Windchill opvragen met SQL

  4. Connector/J MySQL-stuurprogramma in Jenkins Script Console / Scriptler