PostgreSQL: создание базы данных, таблицы и заполнение данных в одном файле сценария SQL - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь создать базу данных и добавить создание таблицы в одном скрипте SQL:

CREATE DATABASE w3;

CREATE TABLE w3.public.examples (
    id SERIAL PRIMARY KEY,
    text VARCHAR(200) NOT NULL
);

INSERT INTO
    w3.public.examples (text)
VALUES
    ('val1');

INSERT INTO
    w3.public.examples (text)
VALUES
    ('val2');

INSERT INTO
    w3.public.examples (text)
VALUES
    ('val3');

SELECT
    *
FROM
    w3.public.examples;

Когда я выполняю этот скрипт с помощью psql: psql -U postgres -a -f script.sql I ' получая ошибку:

psql: скрипт. sql: 26: ОШИБКА: ссылки на базы данных не реализованы: "w3.publi c .examples"

ЛИНИЯ 4: w3.publi c .examples;

Означает ли это, что я не могу создать и использовать базу данных в одном SQL файле?

1 Ответ

1 голос
/ 18 марта 2020

После CREATE DATABASE w3; добавить \c w3, затем удалить w3. ссылки:

CREATE DATABASE w3;

-- connect to the newly created database
\c w3

CREATE TABLE public.examples (
    id SERIAL PRIMARY KEY,
    text VARCHAR(200) NOT NULL
);

INSERT INTO
    public.examples (text)
VALUES
    ('val1'), ('val2'), ('val3');

SELECT
    *
FROM
    public.examples;

Журнал:

$ psql
psql (12.2 (Ubuntu 12.2-2.pgdg18.04+1), server 11.7 (Ubuntu 11.7-2.pgdg18.04+1))
Type "help" for help.

postgres=# CREATE DATABASE w3;
CREATE DATABASE
postgres=# 
postgres=# -- connect to the newly created database
postgres=# \c w3
psql (12.2 (Ubuntu 12.2-2.pgdg18.04+1), server 11.7 (Ubuntu 11.7-2.pgdg18.04+1))
You are now connected to database "w3" as user "nd".
w3=# 
w3=# CREATE TABLE public.examples (
w3(#     id SERIAL PRIMARY KEY,
w3(#     text VARCHAR(200) NOT NULL
w3(# );
CREATE TABLE
w3=# 
w3=# INSERT INTO
w3-#     public.examples (text)
w3-# VALUES
w3-#     ('val1'), ('val2'), ('val3');
INSERT 0 3
w3=# 
w3=# SELECT
w3-#     *
w3-# FROM
w3-#     public.examples;
 id | text 
----+------
  1 | val1
  2 | val2
  3 | val3
(3 rows)

w3=# 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...