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


SELECT * FROM tickets_directions



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

SELECT *
FROM tickets_directions
WHERE tickets_num > 0;
-[ RECORD 1 ]-----+---------------------------
departure_city
| Сочи
arrival_city
| Красноярск
last_ticket_time | 2017-02-04 21:15:32.903687
tickets_num
| 1
Представим другой вариант этой команды. Его принципиальное отличие от пер-
вого варианта состоит в том, что для определения обновляемой строки в таблице
222


7.2. Обновление строк в таблицах
tickets_directions используется операция соединения таблиц. Здесь в глав-
ном запросе UPDATE присутствует предложение FROM, однако в этом предложе-
нии указывается только представление flights_v, а таблицу tickets_directions
в предложение FROM включать не нужно, хотя она и участвует в выполнении соедине-
ния таблиц. Конечно, в предложении SET присваивать новые значения можно только
атрибутам таблицы tickets_directions, поскольку именно она приведена в пред-
ложении UPDATE.
WITH sell_ticket AS
( INSERT INTO ticket_flights_tmp
(ticket_no, flight_id, fare_conditions, amount )
VALUES ( '1234567890123', 7757, 'Economy', 3400 )
RETURNING *
)
UPDATE tickets_directions td
SET last_ticket_time = current_timestamp,
tickets_num = tickets_num + 1
FROM flights_v f
WHERE td.departure_city = f.departure_city
AND td.arrival_city
= f.arrival_city
AND f.flight_id = ( SELECT flight_id FROM sell_ticket );
UPDATE 1
Посмотрим, что получилось:
SELECT *
FROM tickets_directions
WHERE tickets_num > 0;
--[ RECORD 1 ]----+---------------------------
departure_city
| Сочи
arrival_city
| Красноярск
last_ticket_time | 2017-02-04 21:15:32.903687
tickets_num
| 1
--[ RECORD 2 ]----+---------------------------
departure_city
| Москва
arrival_city
| Сочи
last_ticket_time | 2017-02-04 21:18:40.353408
tickets_num
| 1
Чтобы увидеть комбинированную строку, которая получилась при соединении таб-
лиц tickets_directions и flights_v, можно включить в команду UPDATE пред-
ложение RETURNING *.
223




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




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

    Басты бет