sql >> Databáze >  >> RDS >> PostgreSQL

Neukončená nabídka dolaru

Některé platformy nepodporují kotace v dolarech. Ve vašem konkrétním příkladu byste měli mít za posledním END středník . Možná budete muset přidat DECLARE prohlášení také.

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;

Pro platformy, které neuznávají dolarové kotace, můžete použít ' namísto. Všechny ' budete muset escapovat v těle anonymní funkce.

Asi takhle:

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 pro zobrazení funkčního příkladu.



  1. PHP:výsledky pole oci_bind_by_name a časového razítka v ORA-01461:lze svázat hodnotu LONG pouze pro vložení do sloupce LONG

  2. Jak INSTR() funguje v MariaDB

  3. proč pdo->lastInsertId() vrací 0, když volám ULOŽENÝ PROCEDUR v mysql?

  4. Jak nastavit časový limit připojení v závislosti na přihlášení uživatele v MySQL