diff --git a/doc/src/FAQ/FAQ_russian.html b/doc/src/FAQ/FAQ_russian.html index 0666da595edd13ddf34706a88438bf094b26c6d5..0f9841c43739c6e70a08942b0eebf4c2787acd85 100644 --- a/doc/src/FAQ/FAQ_russian.html +++ b/doc/src/FAQ/FAQ_russian.html @@ -12,7 +12,7 @@ <BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff"> <H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1> - <P>Дата последнего обновления: Воскресенье 18 июня 15:33:25 EDT 2006</P> + <P>Дата последнего обновления: Пятница 26 октября 14:59:45 EDT 2007</P> <P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href= "mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> @@ -22,10 +22,10 @@ </P> <P>Самую свежую английскую версию документа можно найти на - <A href="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.PostgreSQL.org/files/documentation/faqs/FAQ.html</A>.</P> + <A href="http://www.postgresql.org/files/documentation/faqs/FAQ.html">http://www.postgresql.org/files/documentation/faqs/FAQ.html</A>.</P> <P>Ответы на вопросы специфичные для конкретных платформ можно найти на - <A href="http://www.postgresql.org/docs/faq/">http://www.PostgreSQL.org/docs/faq/</A>.</P> + <A href="http://www.postgresql.org/docs/faq/">http://www.postgresql.org/docs/faq/</A>.</P> <HR> <H2 align="center">Общие вопросы</H2> @@ -44,7 +44,8 @@ <A href="#item1.12">1.12</A>) Как мне отправить исправление или присоединится к команде разработчиков?<BR> <A href="#item1.13">1.13</A>) Как сравнить PostgreSQL с другими <SMALL>СУБД</SMALL>?<BR> - + <A href="#item1.14">1.14</A>) Будет ли PostgreSQL работать с последними изменениями, в разных страных, + касающимися дневного времени?<BR> <H2 align="center">Вопросы пользователей по клиентской части</H2> <A href="#item2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?<BR> @@ -87,9 +88,9 @@ <A href="#item4.8">4.8</A>) Как мне выполнить поиск регулярного выражения и поиск независимый от регистра букв поиск регулярного выражения? Как мне использовать индекс для поиска независимого от регистра букв?<BR> - <A href="#item4.9">4.9</A>) Как мне определить, что значение поля равно - <SMALL>NULL</SMALL> в каком-либо запросе? Могу я отсортировать поля - <SMALL>NULL</SMALL> или нет?<BR> + <A href="#item4.9">4.9</A>) Как мне определить, что значение поля в каком-либо + запросе равно <SMALL>NULL</SMALL>? Как мне соединить возможные + <SMALL>NULL</SMALL>? Могу я сортировать поля <SMALL>NULL</SMALL> или нет?<BR> <A href="#item4.10">4.10</A>) Каковы отличия между разными символьными типами?<BR> <A href="#item4.11.1">4.11.1</A>) Как мне создать поле serial/с-авто-увеличением?<BR> @@ -117,7 +118,7 @@ не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?<BR> <A href="#item4.20">4.20</A>) Какие есть решения для репликации?<BR> <A href="#item4.21">4.21</A>) Почему имена таблицы и колонок не - распознаются в в моём запросе?<BR> + распознаются в в моём запросе? Почему не сохраняются заглавные буквы?<BR> <HR> @@ -126,9 +127,9 @@ <H3><A name="item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?</H3> <P>PostgreSQL произносится <I>Post-Gres-Q-L (Пост-Грес-Кью-Эл)</I>, - также иногда говорят просто <I>Postgres</I>. Вы можете услышать как - это произносится с помощью аудиофайла, который доступен в - <A href="http://www.postgresql.org/files/postgresql.mp3">формате MP3</A>. + также говорят и просто <I>Postgres</I>, особенно при разговоре. + (Для особо любопытствующих как произносить "PostgreSQL", существует + <A href="http://www.postgresql.org/files/postgresql.mp3">аудио-файл</A>). </P> <P>PostgreSQL - это объектно-реляционная система управления базами @@ -141,8 +142,8 @@ по всему миру и связанная через Интернет. Разработка является общественным проектом и не управляется какой-либо компанией. Подробности смотрите в FAQ для разработчиков, - <A href="http://www.postgresql.org/files/documentation/faqs/FAQ_DEV.html"> - http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html</A> + <A href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> + http://www.postgresql.org/docs/faqs.FAQ_DEV.html</A> </P> <H3><A name="item1.2">1.2</A>) Кто управляет PostgreSQL?</H3> @@ -168,7 +169,7 @@ <P>Система Управления Базами Данных PostgreSQL</P> - <P>Portions copyright (c) 1996-2006, PostgreSQL Global Development + <P>Portions copyright (c) 1996-2007, PostgreSQL Global Development Group Portions Copyright (c) 1994-1996 Regents of the University of California</P> @@ -201,7 +202,7 @@ к моменту выхода данной версии.</P> <P>PostgreSQL также работает на операционных системах Microsoft - Windows, основанных на NT, таких как Win2000, WinXP и Win2003. + Windows, основанных на NT, таких как Win2000 SP4, WinXP и Win2003. Пакет инсталлятора доступен по адресу <A href="http://pgfoundry.org/projects/pginstaller"> http://pgfoundry.org/projects/pginstaller</A>. Версии Windows, @@ -218,12 +219,12 @@ <P>Через браузер, используя <a href="http://www.postgresql.org/ftp/"> http://www.postgresql.org/ftp/</a> и через ftp, используя - <A href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.PostgreSQL.org/pub/</A>.</P> + <A href="ftp://ftp.PostgreSQL.org/pub/">ftp://ftp.postgresql.org/pub/</A>.</P> <H3><A name="item1.6">1.6</A>) Какая версия наиболее свежая?</H3> - <P>Последний выпуск PostgreSQL - это версия 8.1.4</P> + <P>Последний выпуск PostgreSQL - это версия 8.2.5</P> <P>Мы планируем выпускать новые старшие версии каждый год, а младшие версии каждые несколько месяцев.</P> @@ -243,12 +244,13 @@ подключиться, вы можете использовать в Unix вызов программы <code>irc -c '#postgresql' "$USER" irc.freenode.net</code> или любой другой IRC клиент. На этом же сервере существуют каналы на - испанском (<I>#postgresql-es</I>) и французском (<I>#postgresqlfr</I>) - языках. Также существует канал по PostgreSQL на сервере EFNet.</P> + испанском (<I>#postgresql-es</I>), французском (<I>#postgresqlfr</I>) + и бразильском (<I>#postgresql-br</I>) языках. Также существует канал + по PostgreSQL на сервере EFNet.</P> <P>Список коммерческой поддержки компаний доступен на - <A href="http://techdocs.postgresql.org/companies.php"> - http://techdocs.postgresql.org/companies.php</A>.</P> + <A href="http://www.postgresql.org/support/professional_support"> + http://www.postgresql.org/support/professional_support</A>.</P> <H3><A name="item1.8">1.8</A>) Как мне сообщить об ошибке?</H3> @@ -259,7 +261,7 @@ http://www.postgresql.org/support/submitbug</A>. Также проверьте наличие более свежей версии PostgreSQL на нашем FTP сайте <A href="ftp://ftp.postgresql.org/pub/"> - ftp://ftp.PostgreSQL.org/pub/</A>.</P> + ftp://ftp.postgresql.org/pub/</A>.</P> <P>На ошибки, уведомление о которых были сделаны через специальную форму или отправленные в какой-либо список рассылки PostgreSQL, @@ -337,7 +339,7 @@ страницы электронного руководства man и некоторые маленькие тестовые примеры. Смотрите в каталог <I>/doc</I>. Вы также можете просматривать документацию в Интернет по адресу <A href="http://www.postgresql.org/docs"> - http://www.PostgreSQL.org/docs</A>.</P> + http://www.postgresql.org/docs</A>.</P> <P>Существует две книги по PostgreSQL доступные по адресам <A href= "http://www.PostgreSQL.org/docs/books/awbook.html">http://www.PostgreSQL.org/docs/books/awbook.html</A> @@ -345,9 +347,9 @@ Есть несколько книг по PostgreSQL, которые можно купить. Одну из наиболее популярных написал Корри Дуглас (Korry Douglas). Список обзоров по этим книгам доступен по адресу - <a href="http://techdocs.postgresql.org/techdocs/bookreviews.php">http://techdocs.postgresql.org/techdocs/bookreviews.php</a>. - Кроме того, по адресу <a href="http://techdocs.postgresql.org">http://techdocs.PostgreSQL.org/</a> - вы можете найти коллекцию технических статей посвященных PostgreSQL.</P> + <a href="http://www.postgresql.org/docs/books/">http://www.postgresql.org/docs/books/</a>. + Кроме того, по адресу <a href="http://www.postgresql.org/docs/techdocs">http://www.postgresql.org/docs/techdocs</a> + вы можете найти коллекцию технических статей, посвещенных PostgreSQL.</P> <P>Клиент командной строки <I>psql</I> имеет несколько команд \d для отображения информации по типам, операторам, функциям, агрегатам и т.д. - @@ -359,11 +361,7 @@ <H3><A name="item1.11">1.11</A>) Как мне научиться <SMALL>SQL</SMALL>?</H3> <P>Во-первых, возьмите одну из книг по PostgreSQL, о которых говорилось - выше. Еще один учебник - это книга "Teach Yourself SQL in 21 Days, - Second Edition" (Освой самостоятельно SQL за 21 день, Вторая редакция) - на <A href="http://members.tripod.com/er4ebus/sql/index.htm"> - http://members.tripod.com/er4ebus/sql/index.htm</A>. - Многим из наших пользователей нравится книга + выше. Многим из наших пользователей также нравится книга <I>The Practical SQL Handbook</I>, Bowman, Judith S., et al., Addison-Wesley. Другим нравится <I>The Complete Reference SQL</I>, Groff et al., McGraw-Hill.</P> @@ -453,7 +451,14 @@ </DD> </DL> + <H3><A name="item1.14">1.14</A>) Будет ли PostgreSQL работать с + последними изменениями, в разных страных, касающимися дневного времени?</H3> + <P>Изменения в сохранении дневного времени в США включены в PostgreSQL версии + 8.0.[4+] и во все следующие выпуски, например в 8.1. Изменения по Канаде + и Западной Австралии включены в 8.0.[10+], 8.1.[6+] и все следующие + выпуски. Выпуски PostgreSQL до 8.0 используют информацию о сохранении + дневного времени из базы данных временных зон в операционной системе.</p> <HR> <H3 align="center">Вопросы пользователей по клиентской части</H3> @@ -544,7 +549,7 @@ <DD>Некоторые установки в <I>postgresql.conf</I> влияют на производительность. Подробный полный список установок см. в - <A href="http://www.postgresql.org/docs/current/static/runtime.html"> + <A href="http://www.postgresql.org/docs/current/static/runtime-config.html"> Administration Guide/Server Run-time Environment/Run-time Configuration</A>, а комментарии см. в <A href="http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html"> http://www.varlena.com/varlena/GeneralBits/Tidbits/annotated_conf_e.html</A> @@ -556,11 +561,12 @@ <DT><B>Выбор "железа" - аппаратного обеспечения</B></DT> <DD>Влияние "железа" на производительность подробно описано в - <A href="http://momjian.us/main/writings/pgsql/hw_performance/index.html"> - http://candle.pha.pa.us/main/writings/pgsql/hw_performance/index.html</A> и <A href="http://www.powerpostgresql.com/PerfList/"> - http://www.powerpostgresql.com/PerfList/</A>. - <BR><BR> + http://www.powerpostgresql.com/PerfList/</A> и + <A href="http://momjian.us/main/writings/pgsql/hw_performance/index.html"> + http://momjian.us/main/writings/pgsql/hw_performance/index.html</A>. + <BR> + <BR> </DD> </DL> @@ -576,33 +582,19 @@ <H3><A name="item3.5">3.5</A>) Почему я получаю сообщение <I>"Sorry, too many clients"</I> когда пытаюсь подключиться к базе?</H3> - <P>Вы достигли установленного по умолчанию ограничения на 100 сессий - подключения к базе данных. Вам необходимо увеличить для - <I>postmaster</I> лимит на количество конкурентных backend процессов, + <P>Вы достигли установленного по умолчанию ограничения в 100 сессий + подключения к базе данных. Вам необходимо увеличить лимит на количество + конкурентных backend процессов для вашего сервера БД, изменив значение <I>max_connections</I> в файле <I>postgresql.conf</I> - и перестартовать <I>postmaster</I>.</P> + и перестартовать сервер БД.</P> <H3><A name="item3.6">3.6</A>) Как выполнить обновление PostgreSQL?</H3> - <P>Между подвыпусками, разработчики PostgreSQL делают только исправления - ошибок. Таким образом обновление с версии 7.4.8 до 7.4.9 не требует - выполнения dump и restore; достаточно остановить сервер, установить - обновлённые файлы СУБД и запустить сервер.</P> - - <P>Все пользователи должны бы обновляться на наиболее свежую подверсию - как только она будет доступна. В то время как каждое обновление - подразумевает некоторый риск, подверсии PostgreSQL разрабытываются только - для исправления общих ошибок с минимальным риском. Таким образом, ваш - риск связан только с самим обновлением.</P> - - - <P>При выходе очередного выпуска - (т.е. при обновлении например, с 7.3 на 7.4) часто меняется внутренний - формат системных таблиц и файлов данных. Эти изменения часто носят - сложный характер, так что мы не обслуживаем обратную - совместимость для файлов данных. В этих случаях для обновления базы - данных требуется выполнить dump/restore.</P> + <P>См. информацию об обновлении в <a + href="http://www.postgresql.org/support/versioning">http://www.postgresql.org/support/versioning</a> + и специальные инструкции в <a href="http://www.postgresql.org/docs/current/static/install-upgrading.html"> + http://www.postgresql.org/docs/current/static/install-upgrading.html</a>.</P> <H3><A name="item3.7">3.7</A>) Какое компьютерное "железо" я должен @@ -745,9 +737,9 @@ которых целое число и текстовое описание. При этом длина текста, в среднем, составляет 20 байт. Размер простого файла составит 2.8 MB. Размер базы PostgreSQL, содержащей эти же данные составит приблизительно - 5.6 MB из которых:</P> + 5.2 MB из которых:</P> <PRE> - 28 байт: на каждый заголовок строки в таблице (приблизительно) + 24 байт: на каждый заголовок строки в таблице (приблизительно) + 24 байта: одно поле с целочисленным типом и одно текстовое поле + 4 байта: указатель на странице для всей табличной строки ---------------------------------------- @@ -756,14 +748,14 @@ Размер страницы данных в PostgreSQL составляет 8192 байт (8 KB), так что: 8192 байт на страницу - --------------------- = 146 строк в таблице на страницу БД (округлённо) - 56 байт на строку в таблице + --------------------- = 158 строк в таблице на страницу БД (округлённо) + 52 байт на строку в таблице 100000 строк данных - ----------------------- = 685 страниц в БД (округлённо) - 146 строк в таблице на страницу + ----------------------- = 633 страниц в БД (округлённо) + 158 строк в таблице на страницу - 685 страниц БД * 8192 байт на страницу = 5,611,520 байт (5.6 MB) + 633 страниц БД * 8192 байт на страницу = 5,185,536 байт (5.2 MB) </PRE> <P>Индексы не требуют так много, но поскольку они создаются для @@ -822,13 +814,10 @@ <i>C</i>, потому что не существует возможности узнать следующий наибольший символ для не-C локали. Вы можете для таких случаев создать специальный индекс <CODE>text_pattern_ops</CODE> который работает только для - <SMALL>LIKE</SMALL> индексирования.</LI> + <SMALL>LIKE</SMALL> индексирования. Для поиска слов также можно + использовать полнотекстовый индекс.</LI> </UL> - <P>В выпусках до версии 8.0, индексы часто нельзя было использовать, - если типы данных точно не совпадали с индексными типами колонок. Это - особенно касалось int2, int8 и numeric индексов колонок.</P> - <H3><A name="item4.7">4.7</A>) Как посмотреть на то, как оптимизатор выполняет мой запрос?</H3> @@ -863,9 +852,9 @@ только в определённом регистре, используйте ограничение <SMALL>CHECK</SMALL> или проверку через триггер.</P> - <H3><A name="item4.9">4.9</A>) Как мне определить, что значение поля равно - <SMALL>NULL</SMALL> в каком-либо запросе? Могу я отсортировать поля - <SMALL>NULL</SMALL> или нет?</H3> + <H3><A name="item4.9">4.9</A>) Как мне определить, что значение поля в каком-либо + запросе равно <SMALL>NULL</SMALL>? Как мне соединить возможные + <SMALL>NULL</SMALL>? Могу я сортировать поля <SMALL>NULL</SMALL> или нет?</H3> <P>Вы просто сравниваете значение с <SMALL>IS NULL</SMALL> и <SMALL>IS NOT NULL</SMALL>, как здесь:</P> @@ -875,6 +864,13 @@ WHERE col IS NULL; </PRE> + <P>Чтобы соединить с возможными значениями <SMALL>NULL</SMALL>, используйте + <I>COALESCE()</I> как здесь:</P> +<PRE> + SELECT COALESCE(col1, '') || COALESCE(col2, '') + FROM tab +</PRE> + <P>Чтобы отсортировать данные по значению <NULL> используйте модификаторы <SMALL>IS NULL</SMALL> и <SMALL>IS NOT NULL</SMALL> в выражении <SMALL>ORDER BY</SMALL>. Когда они будут генерировать значения @@ -967,38 +963,28 @@ ); </PRE> + <P>Автоматически созданная последовательность имеет имя вида + <<I>таблица</I>>_<<I>колонка_serial</I>>_<I>seq</I>, где + <I>таблица</I> и <I>колонка_serial</I> - это соответственно имена + таблицы и колонки с типом <SMALL>SERIAL</SMALL>. Смотрите подробности о последовательностях на странице руководства - посвященной <I>create_sequence</I>. + посвященной <I>create_sequence</I>.</P> <H3><A name="item4.11.2">4.11.2</A>) Как мне получить значение при вставке <SMALL>SERIAL</SMALL>?</H3> - <P>Один из способов состоит в получении следующего значения - <SMALL>SERIAL</SMALL> из объекта sequence с помощью функции - <I>nextval()</I> <I>перед</I> вставкой и затем вставлять это значение - явно. Используйте таблицу-пример в <A href="#item4.11.1">4.11.1</A>, пример - в псевдоязыке покажет как это делается:</P> -<PRE> - new_id = execute("SELECT nextval('person_id_seq')"); - execute("INSERT INTO person (id, name) VALUES (new_id, 'Blaise Pascal')"); -</PRE> + <P>Простейший способ получить назначенное значение <SMALL>SERIAL</SMALL> + это использовать <SMALL>RETURNING</SMALL>. Используя для примера таблицу в <A + href="#item4.11.1">4.11.1</A>, это может выглядеть так:</P> - Затем вы должны также сохранить новое значение в переменной - <CODE>new_id</CODE> для его использования в других запросах (например - таких как внешний ключ для таблицы <CODE>person</CODE>). Заметим, - что имя автоматически созданного объекта <SMALL>SEQUENCE</SMALL> - будет <<I>table</I>>_<<I>serialcolumn</I>>_<I>seq</I>, - где <I>table</I> и <I>serialcolumn</I> являются соответственно - именами вашей таблицы и вашей колонки <SMALL>SERIAL</SMALL>. - - <P>В качестве альтернативы, вы можете получить назначенное значение - <SMALL>SERIAL</SMALL> с помощью функции <I>currval()</I> - <I>после</I> проведения обычной операции вставки, например</P> <PRE> - execute("INSERT INTO person (name) VALUES ('Blaise Pascal')"); - new_id = execute("SELECT currval('person_id_seq')"); + INSERT INTO person (name) VALUES ('Blaise Pascal') RETURNING id; </PRE> + Вы также можете вызвать <I>nextval()</I> и использовать это значение в + <SMALL>INSERT</SMALL> или вызвать <I>currval()</I> <I>после</I> + <SMALL>INSERT</SMALL>. + <H3><A name="item4.11.3">4.11.3</A>) Не может ли получиться так, что использование <I>currval()</I> и <I>nextval()</I> приведет к @@ -1020,15 +1006,15 @@ <H3><A name="item4.12">4.12</A>) Что такое <SMALL>OID</SMALL>? Что такое <SMALL>CTID</SMALL>?</H3> - <P>Каждая, создаваемая в PostgreSQL табличная строка, получает уникальный - индентификатор <SMALL>OID</SMALL> за исключением случая когда - использовалось <SMALL>WITHOUT OIDS</SMALL>. O<SMALL>ID</SMALL> - это - автоматически назначаемое уникальное 4-х байтовое целое число. + <P>Если таблица создана с <SMALL>WITH OIDS</SMALL>, то каждая строка + получает уникальный индентификатор <SMALL>OID</SMALL>. + O<SMALL>ID</SMALL> - это автоматически назначаемое уникальное 4-х + байтовое целое число, которое уникально для всей установленной СУБД. Однако, после того как его значение превысит 4 миллиарда, значения O<SMALL>ID</SMALL> начинают дублироваться. PostgreSQL использует <SMALL>OID</SMALL> для связывания своих внутренних таблиц.</P> - <P>Для уникальных значений в колонках таблицы пользователя, лучшим + <P>Для уникального значения в строках таблицы пользователя, лучшим способом является использование <SMALL>SERIAL</SMALL> вместо O<SMALL>ID</SMALL>, потому что последовательности <SMALL>SERIAL</SMALL> уникальны только внутри таблицы и таким образом меньше подвержены @@ -1047,7 +1033,7 @@ <P>Предположительно у вас закончилась виртуальная память или что ваше ядро имеет маленький лимит на определенные ресурсы. - Попытайтесь перед запуском <I>postmaster</I> выполнить следующие + Попытайтесь перед запуском сервера БД выполнить следующие команды:</P> <PRE> ulimit -d 262144 @@ -1115,22 +1101,24 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); <H3><A name="item4.18">4.18</A>) Как мне вернуть из функции несколько строк таблицы?</H3> <P>Вы можете легко использовать функции, возвращающие список, - <A href="http://techdocs.postgresql.org/guides/SetReturningFunctions"> - http://techdocs.postgresql.org/guides/SetReturningFunctions</A>.</P> + <A href="http://www.postgresql.org/docs/techdocs.17"> + http://www.postgresql.org/docs/techdocs.17</A>.</P> <H3><A name="item4.19">4.19</A>) Почему я получаю ошибку "relation with OID #### не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?</H3> - <P>PL/PgSQL кэширует сценарии функции и один из негативных эффектов этого - состоит в том, что если функция PL/PgSQL обращается к временной таблице - и эта таблица позднее удаляется и пересоздается, а функция затем вызывается - снова, то ее вызов приведет к ошибке, потому что скэшированное содержимое - функции содержит указатель на старую временную таблицу. Чтобы решить эту - проблему, используйте <SMALL>EXECUTE</SMALL> для доступа к временным + <P>В PostgreSQL до версии 8.3, PL/PgSQL кэширует сценарии функции и один из + негативных эффектов этого состоит в том, что если функция PL/PgSQL обращается + к временной таблице и эта таблица позднее удаляется и пересоздается, а функция + затем вызывается снова, то ее вызов приведет к ошибке, потому что скэшированное + содержимое функции содержит указатель на старую временную таблицу. Чтобы решить + эту проблему, используйте <SMALL>EXECUTE</SMALL> для доступа к временным таблицам в PL/PgSQL. Использование этого оператора заставит запрос перегенерироваться каждый раз.</P> + <P>В PostgreSQL 8.3 и позднее, этой проблемы нет.</p> + <H3><A name="item4.20">4.20</a>) Какие есть решения для репликации?</H3> @@ -1142,7 +1130,7 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); (slave) сервера могут производить только запросы чтения/<SMALL>SELECT</SMALL>. Наиболее популярным решением для репликации master-slave в PostgreSQL является - <A href="http://gborg.postgresql.org/project/slony1/projdisplay.php"> + <A href="http://main.slony.info/"> Slony-I</A>.</P> <P>Репликация Multi-master позволяет выполнять запросы чтения/записи @@ -1150,15 +1138,15 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); также приводит к потере производительности, потому что необходима синхронизация изменений между несколькими серверами. Наиболее популярным решением для такой репликации в PostgreSQL является - <A href="http://pgfoundry.org/projects/pgcluster/">Pgcluster</A>. + <A href="http://pgfoundry.org/projects/pgcluster/">PGcluster</A>. <H3><A name="item4.21">4.21</A>) Почему имена таблицы и колонок не - распознаются в в моём запросе?</H3> + распознаются в в моём запросе? Почему не сохраняются заглавные буквы?</H3> - <P>Наиболее часто это происходит из-за использования двойных кавычек в + <P>Наиболее часто имена нераспознаются из-за использования двойных кавычек в имени таблицы или колонки при создании таблицы. При использовании двойных кавычек, имя таблицы и колонки (которые называют идентификаторами) - сохраняются в <A href="http://www.postgresql.org/docs/8.0/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS"> + сохраняются в <A href="http://www.postgresql.org/docs/current/static/sql-syntax.html#SQL-SYNTAX-IDENTIFIERS"> регистро-зависимом виде</A>; это означает, что вы должны использовать двойные кавычки, когда указываете эти имена в запросе. Некоторые интерфейсы, такие как pgAdmin, во время создания таблицы добавляют