PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Báo giá đô la chưa kết thúc

Một số nền tảng không hỗ trợ báo giá đô la. Trong ví dụ cụ thể của bạn, bạn nên có dấu chấm phẩy sau END cuối cùng . Bạn có thể cần thêm DECLARE cũng tuyên bố.

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;

Đối với các nền tảng không nhận dạng báo giá đô la, bạn có thể sử dụng ' thay vì. Bạn sẽ cần thoát khỏi bất kỳ ' nào trong phần thân của hàm ẩn danh.

Như vậy:

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 để xem một ví dụ hoạt động.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để chèn một hàng duy nhất trong bảng cha và sau đó nhiều hàng trong bảng con trong SQL đơn trong PostgreSQL?

  2. PG ::InvalidColumnReference:ERROR:for SELECT DISTINCT, ORDER BY biểu thức phải xuất hiện trong danh sách lựa chọn

  3. Hàm tổng hợp tổng hợp mảng cặp đôi?

  4. Làm thế nào để truy cập chỉ mục nội bộ mảng với postgreSQL?

  5. Tôi đang gặp sự cố khi đẩy ứng dụng rails của mình lên Heroku / cài đặt gem 'pg'?