COPY aircrafts_tmp FROM STDIN WITH ( FORMAT csv );
Вводите данные для копирования, разделяя строки переводом строки.
Закончите ввод строкой '\.'.
227
Глава 7. Изменение данных
IL9, Ilyushin IL96, 9800
I93, Ilyushin IL96-300, 9800
\.
COPY 2
SELECT * FROM aircrafts_tmp;
aircraft_code |
model
| range
---------------+---------------------+-------
...
CN1
| Cessna 208 Caravan | 1200
CR2
| Bombardier CRJ-200 | 2700
IL9
| Ilyushin IL96
| 9800
I93
| Ilyushin IL96-300 | 9800
(11 строк)
Как вы думаете, почему при выводе данных из таблицы вновь введенные зна-
чения в столбце model оказались смещены вправо?
7. Команда COPY позволяет получить входные данные из файла и поместить их
в таблицу. Этот файл должен быть доступен тому пользователю операцион-
ной системы, от имени которого запущен серверный процесс, как правило, это
пользователь postgres.
Подготовьте файл, например, /home/postgres/aircrafts_tmp.csv, имеющий такую
структуру:
– каждая строка файла соответствует одной строке таблицы aircrafts_tmp;
– значения данных в строке файла разделяются запятыми.
Например:
773,Boeing 777-300,11100
763,Boeing 767-300,7900
SU9,Sukhoi SuperJet-100,3000
Введите в этот файл данные о нескольких самолетах, причем часть из них уже
должна быть представлена в таблице, а часть — нет.
Поскольку при выполнении команды COPY проверяются все ограничения це-
лостности, наложенные на таблицу, то дублирующие строки добавлены, конеч-
но же, не будут. А как вы думаете, строки, содержащиеся в этом же файле, но
отсутствующие в таблице, будут добавлены или нет?
228
Контрольные вопросы и задания
Проверьте свою гипотезу, выполнив вставку строк в таблицу из этого файла:
Достарыңызбен бөлісу: |