Учебное пособие Санкт-Петербург «бхв-петербург»



Pdf көрінісі
бет178/256
Дата18.11.2022
өлшемі1.88 Mb.
#465124
түріУчебное пособие
1   ...   174   175   176   177   178   179   180   181   ...   256
sql osnovi yazika

WITH add_row AS
( INSERT INTO aircrafts_tmp
SELECT * FROM aircrafts
RETURNING aircraft_code, model, range,
current_timestamp, 'INSERT'
)
INSERT INTO aircrafts_log
SELECT ? FROM add_row;
Что нужно написать в этом запросе вместо вопросительного знака?
226


Контрольные вопросы и задания
3. Если бы мы для копирования данных в таблицу aircrafts_tmp использовали
команду INSERT без общего табличного выражения
INSERT INTO aircrafts_tmp SELECT * FROM aircrafts;
то в качестве выходного результата мы увидели бы сообщение
INSERT 0 9
Как вы думаете, что будет выведено, если дополнить команду предложением
RETURNING *?
INSERT INTO aircrafts_tmp SELECT * FROM aircrafts RETURNING *;
Проверьте ваши предположения на практике. Подумайте, каким образом мож-
но использовать выведенный результат?
4. В тексте главы в предложениях ON CONFLICT команды INSERT мы использова-
ли только выражения, состоящие из имени одного столбца. Однако в таблице
«Места» (seats) первичный ключ является составным и включает два столбца.
Напишите команду INSERT для вставки новой строки в эту таблицу и преду-
смотрите возможный конфликт добавляемой строки со строкой, уже имеющей-
ся в таблице. Сделайте два варианта предложения ON CONFLICT: первый — с ис-
пользованием перечисления имен столбцов для проверки наличия дублирова-
ния, второй — с использованием предложения ON CONSTRAINT.
Для того чтобы не изменить содержимое таблицы «Места», создайте ее копию
и выполняйте все эти эксперименты с таблицей-копией.
5. В предложении DO UPDATE команды INSERT может использоваться и условие
WHERE. Самостоятельно ознакомьтесь с этой возможностью с помощью доку-
ментации и напишите такую команду INSERT.
6. Команда COPY по умолчанию ожидает получения вводимых данных в формате
text, когда значения данных разделяются символами табуляции. Однако мож-
но представлять входные данные в формате CSV (Comma Separated Values), т. е.
использовать в качестве разделителя запятую.


Достарыңызбен бөлісу:
1   ...   174   175   176   177   178   179   180   181   ...   256




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет