booktown=# UPDATE authors
booktown-# SET firstjiame = 'Louisa May'
booktown-l WHERE firstjiame = 'Luoisa May'
UPDATE 1
booktown-# SELECT * FROM authors;
id | lastjiame | firstjiame
1809 | Geisel | Theodor Seuss
1111 | Denham | Ariel 15990 | Bourgeois | Paulette
25041 | Bianco j Margery Williams
115 I Poe I Edgar Allen
16 j Alcott I Louisa May
(6 rows)
Команда UPDATE в листинге 3.4 использует строковые константы Louisa May и Luoisa May в сочетании с ключевыми словами SET и WHERE. Как видно из результатов запроса, команда обновляет содержимое таблицы, заданной идентификатором authors, и исправляет опечатку.
Тот факт, что строковые константы заключаются между апострофами, порождает очевидную семантическую проблему: если в самой последовательности символов встречается апостроф, граница строковой константы будет определена неверно. Чтобы экранировать апостроф в строке (то есть обеспечить его интерпретацию как литерала), следует поставить два апострофа подряд. Модуль лексического анализа воспринимает удвоенный апостроф в строковой константе как один апостроф-литерал. PostgreSQL также позволяет экранировать апострофы обратной косой чертой, в стиле языка С:
testdb=# SELECT 'PostgreSQL"s great!' AS example;
example
PostgreSQL's great! (1 row)
booktown=# SELECT 'PostgreSQLN's
С-style slashes are great!' AS example;
example
PostgreSQL's C-style slashes are great!
(1 row)
В PostgreSQL также поддерживаются служебные последовательности языка С, перечисленные в табл. 3.3.