|
|
|
@ -12,7 +12,7 @@ |
|
|
|
|
<BODY bgcolor="#ffffff" text="#000000" link="#ff0000" vlink="#a00000" alink="#0000ff"> |
|
|
|
|
<H1>Ответы на часто задаваемые вопросы по PostgreSQL</H1> |
|
|
|
|
|
|
|
|
|
<P>Дата последнего обновления: Пятница 16 сентября 14:07:22 EDT 2005</P> |
|
|
|
|
<P>Дата последнего обновления: Пятница 24 февраля 23:28:40 EDT 2006</P> |
|
|
|
|
|
|
|
|
|
<P>Английский вариант сопровождает: Брюс Момьян (Bruce Momjian) (<A href= |
|
|
|
|
"mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</A>)<BR> |
|
|
|
@ -29,102 +29,102 @@ |
|
|
|
|
<HR> |
|
|
|
|
|
|
|
|
|
<H2 align="center">Общие вопросы</H2> |
|
|
|
|
<A href="#1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?<BR> |
|
|
|
|
<A href="#1.2">1.2</A>) Каковы авторские права на PostgreSQL?<BR> |
|
|
|
|
<A href="#1.3">1.3</A>) На каких платформах работает PostgreSQL?<BR> |
|
|
|
|
<A href="#1.4">1.4</A>) Где можно взять PostgreSQL?<BR> |
|
|
|
|
<A href="#1.5">1.5</A>) Где получить поддержку?<BR> |
|
|
|
|
<A href="#1.6">1.6</A>) Как мне сообщить об ошибке?<BR> |
|
|
|
|
<A href="#1.7">1.7</A>) Какая версия последняя?<BR> |
|
|
|
|
<A href="#1.8">1.8</A>) Какая документация имеется в наличии?<BR> |
|
|
|
|
<A href="#1.9">1.9</A>) Как найти информацию об известных ошибках или отсутствующих |
|
|
|
|
<A href="#item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?<BR> |
|
|
|
|
<A href="#item1.2">1.2</A>) Кто управляет PostgreSQL?<BR> |
|
|
|
|
<A href="#item1.3">1.3</A>) Каковы авторские права на PostgreSQL?<BR> |
|
|
|
|
<A href="#item1.4">1.4</A>) На каких платформах работает PostgreSQL?<BR> |
|
|
|
|
<A href="#item1.5">1.5</A>) Где можно взять PostgreSQL?<BR> |
|
|
|
|
<A href="#item1.6">1.6</A>) Какая версия последняя?<BR> |
|
|
|
|
<A href="#item1.7">1.7</A>) Где получить поддержку?<BR> |
|
|
|
|
<A href="#item1.8">1.8</A>) Как мне сообщить об ошибке?<BR> |
|
|
|
|
<A href="#item1.9">1.9</A>) Как найти информацию об известных ошибках или отсутствующих |
|
|
|
|
возможностях?<BR> |
|
|
|
|
<A href="#1.10">1.10</A>) Как научиться <SMALL>SQL</SMALL>?<BR> |
|
|
|
|
<A href="#1.11">1.11</A>) Как присоединится к команде разработчиков?<BR> |
|
|
|
|
<A href="#1.12">1.12</A>) Как сравнивать PostgreSQL с другими |
|
|
|
|
<A href="#item1.10">1.10</A>) Какая документация имеется в наличии?<BR> |
|
|
|
|
<A href="#item1.11">1.11</A>) Как научиться <SMALL>SQL</SMALL>?<BR> |
|
|
|
|
<A href="#item1.12">1.12</A>) Как присоединится к команде разработчиков?<BR> |
|
|
|
|
<A href="#item1.13">1.13</A>) Как сравнить PostgreSQL с другими |
|
|
|
|
<SMALL>СУБД</SMALL>?<BR> |
|
|
|
|
<A href="#1.13">1.13</A>) Кто управляет PostgreSQL?<BR> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H2 align="center">Вопросы пользователей по клиентской части</H2> |
|
|
|
|
<A href="#2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?<BR> |
|
|
|
|
<A href="#2.2">2.2</A>) Какие инструменты существуют для использования |
|
|
|
|
<A href="#item2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?<BR> |
|
|
|
|
<A href="#item2.2">2.2</A>) Какие инструменты существуют для использования |
|
|
|
|
PostgreSQL через Web?<BR> |
|
|
|
|
<A href="#2.3">2.3</A>) Есть ли у PostgreSQL графический интерфейс |
|
|
|
|
<A href="#item2.3">2.3</A>) Есть ли у PostgreSQL графический интерфейс |
|
|
|
|
пользователя?<BR> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H2 align="center">Вопросы администрирования</H2> |
|
|
|
|
<A href="#3.1">3.1</A>) Как мне установить PostgreSQL в место отличное |
|
|
|
|
<A href="#item3.1">3.1</A>) Как мне установить PostgreSQL в место отличное |
|
|
|
|
от <I>/usr/local/pgsql</I>?<BR> |
|
|
|
|
<A href="#3.2">3.2</A>) Как мне управлять соединениями с других |
|
|
|
|
<A href="#item3.2">3.2</A>) Как мне управлять соединениями от других |
|
|
|
|
компьютеров?<BR> |
|
|
|
|
<A href="#3.3">3.3</A>) Какие настройки мне нужно сделать для улучшения |
|
|
|
|
<A href="#item3.3">3.3</A>) Какие настройки мне нужно сделать для улучшения |
|
|
|
|
производительности?<BR> |
|
|
|
|
<A href="#3.4">3.4</A>) Какие возможности для отладки есть в наличии?<BR> |
|
|
|
|
<A href="#3.5">3.5</A>) Почему я получаю сообщение <I>"Sorry, too many |
|
|
|
|
<A href="#item3.4">3.4</A>) Какие возможности для отладки есть в наличии?<BR> |
|
|
|
|
<A href="#item3.5">3.5</A>) Почему я получаю сообщение <I>"Sorry, too many |
|
|
|
|
clients"</I> когда пытаюсь подключиться к базе?<BR> |
|
|
|
|
<A href="#3.6">3.6</A>) Почему необходимо делать dump и restore при |
|
|
|
|
<A href="#item3.6">3.6</A>) Почему необходимо делать dump и restore при |
|
|
|
|
обновлении выпусков PostgreSQL?<BR> |
|
|
|
|
<A href="#3.7">3.7</A>) Какое компьютерное "железо" я должен |
|
|
|
|
<A href="#item3.7">3.7</A>) Какое компьютерное "железо" я должен |
|
|
|
|
использовать?<BR> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H2 align="center">Вопросы эксплуатации</H2> |
|
|
|
|
<A href="#4.1">4.1</A>) Как выполнить <SMALL>SELECT</SMALL> только |
|
|
|
|
<A href="#item4.1">4.1</A>) Как выполнить <SMALL>SELECT</SMALL> только |
|
|
|
|
для нескольких первых строчек запроса? Для произвольной строки?<BR> |
|
|
|
|
<A href="#4.2">4.2</A>) Как мне найти какие таблицы, индексы, |
|
|
|
|
<A href="#item4.2">4.2</A>) Как мне найти какие таблицы, индексы, |
|
|
|
|
базы данных и пользователи существуют? Как мне увидеть запросы, |
|
|
|
|
которые использует <I>psql</I> для получения этой информации?<BR> |
|
|
|
|
<A href="#4.3">4.3</A>) Как изменить тип данных колонки?<BR> |
|
|
|
|
<A href="#4.4">4.4</A>) Каковы максимальные размеры для строк в таблице, |
|
|
|
|
<A href="#item4.3">4.3</A>) Как изменить тип данных колонки?<BR> |
|
|
|
|
<A href="#item4.4">4.4</A>) Каковы максимальные размеры для строк в таблице, |
|
|
|
|
таблиц и базы данных?<BR> |
|
|
|
|
<A href="#4.5">4.5</A>) Как много дискового пространства в базе данных |
|
|
|
|
<A href="#item4.5">4.5</A>) Как много дискового пространства в базе данных |
|
|
|
|
нужно для сохранения данных из обычного текстового файла?<BR> |
|
|
|
|
<A href="#4.6">4.6</A>) Почему мои запросы работают медлено? Почему |
|
|
|
|
<A href="#item4.6">4.6</A>) Почему мои запросы работают медлено? Почему |
|
|
|
|
они не используют мои индексы?<BR> |
|
|
|
|
<A href="#4.7">4.7</A>) Как посмотреть на то, как оптимизатор выполняет |
|
|
|
|
<A href="#item4.7">4.7</A>) Как посмотреть на то, как оптимизатор выполняет |
|
|
|
|
мой запрос?<BR> |
|
|
|
|
<A href="#4.8">4.8</A>) Как мне выполнить поиск регулярного выражения |
|
|
|
|
<A href="#item4.8">4.8</A>) Как мне выполнить поиск регулярного выражения |
|
|
|
|
и поиск независимый от регистра букв поиск регулярного выражения? |
|
|
|
|
Как мне использовать индекс для поиска независимого от регистра букв?<BR> |
|
|
|
|
<A href="#4.9">4.9</A>) Как мне определить, что значение поля равно |
|
|
|
|
<A href="#item4.9">4.9</A>) Как мне определить, что значение поля равно |
|
|
|
|
<SMALL>NULL</SMALL> в каком-либо запросе? Могу я отсортировать поля |
|
|
|
|
<SMALL>NULL</SMALL> или нет?<BR> |
|
|
|
|
<A href="#4.10">4.10</A>) Каковы отличия между разными символьными |
|
|
|
|
<A href="#item4.10">4.10</A>) Каковы отличия между разными символьными |
|
|
|
|
типами?<BR> |
|
|
|
|
<A href="#4.11.1">4.11.1</A>) Как мне создать поле serial/с-авто-увеличением?<BR> |
|
|
|
|
<A href="#4.11.2">4.11.2</A>) Как мне получить значение при вставке |
|
|
|
|
<A href="#item4.11.1">4.11.1</A>) Как мне создать поле serial/с-авто-увеличением?<BR> |
|
|
|
|
<A href="#item4.11.2">4.11.2</A>) Как мне получить значение при вставке |
|
|
|
|
<SMALL>SERIAL</SMALL>?<BR> |
|
|
|
|
<A href="#4.11.3">4.11.3</A>) Не может ли получиться так, что |
|
|
|
|
<A href="#item4.11.3">4.11.3</A>) Не может ли получиться так, что |
|
|
|
|
использование <I>currval()</I> и <I>nextval()</I> приведет к |
|
|
|
|
зациклированию с другими пользователями?<BR> |
|
|
|
|
<A href="#4.11.4">4.11.4</A>) Почему числа из моей последовательности |
|
|
|
|
<A href="#item4.11.4">4.11.4</A>) Почему числа из моей последовательности |
|
|
|
|
не используются снова при отмене транзакции? Почему создаются разрывы |
|
|
|
|
при нумерации в колонке, где я использую последовательность/SERIAL?<BR> |
|
|
|
|
<A href="#4.12">4.12</A>) Что такое <SMALL>OID</SMALL>? Что такое |
|
|
|
|
<A href="#item4.12">4.12</A>) Что такое <SMALL>OID</SMALL>? Что такое |
|
|
|
|
<SMALL>CTID</SMALL>?<BR> |
|
|
|
|
<A href="#4.13">4.13</A>) Почему я получаю ошибку <I>"ERROR: Memory |
|
|
|
|
<A href="#item4.13">4.13</A>) Почему я получаю ошибку <I>"ERROR: Memory |
|
|
|
|
exhausted in AllocSetAlloc()"</I>?<BR> |
|
|
|
|
<A href="#4.14">4.14</A>) Как мне узнать, какая версия PostgreSQL |
|
|
|
|
<A href="#item4.14">4.14</A>) Как мне узнать, какая версия PostgreSQL |
|
|
|
|
запущена?<BR> |
|
|
|
|
<A href="#4.15">4.15</A>) Как мне создать колонку которая по умолчанию |
|
|
|
|
<A href="#item4.15">4.15</A>) Как мне создать колонку которая по умолчанию |
|
|
|
|
будет содержать текущее время?<BR> |
|
|
|
|
<A href="#4.16">4.16</A>) Как выполнить внешнее связывание?<BR> |
|
|
|
|
<A href="#4.17">4.17</A>) Как выполнять запросы, использующие несколько |
|
|
|
|
<A href="#item4.16">4.16</A>) Как выполнить внешнее связывание?<BR> |
|
|
|
|
<A href="#item4.17">4.17</A>) Как выполнять запросы, использующие несколько |
|
|
|
|
баз данных?<BR> |
|
|
|
|
<A href="#4.18">4.18</A>) Как мне вернуть из функции несколько строк таблицы?<BR> |
|
|
|
|
<A href="#4.19">4.19</A>) Почему я получаю ошибку "relation with OID #### |
|
|
|
|
<A href="#item4.18">4.18</A>) Как мне вернуть из функции несколько строк таблицы?<BR> |
|
|
|
|
<A href="#item4.19">4.19</A>) Почему я получаю ошибку "relation with OID #### |
|
|
|
|
не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?<BR> |
|
|
|
|
<A href="#4.20">4.20</A>) Какие есть решения для репликации?<BR> |
|
|
|
|
<A href="#4.21">4.21</A>) Почему имена таблицы и колонок не |
|
|
|
|
<A href="#item4.20">4.20</A>) Какие есть решения для репликации?<BR> |
|
|
|
|
<A href="#item4.21">4.21</A>) Почему имена таблицы и колонок не |
|
|
|
|
распознаются в в моём запросе?<BR> |
|
|
|
|
|
|
|
|
|
<HR> |
|
|
|
|
|
|
|
|
|
<H2 align="center">Общие вопросы</H2> |
|
|
|
|
|
|
|
|
|
<H3><A name="1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?</H3> |
|
|
|
|
<H3><A name="item1.1">1.1</A>) Что такое PostgreSQL? Как произносится это название?</H3> |
|
|
|
|
|
|
|
|
|
<P>PostgreSQL произносится <I>Post-Gres-Q-L (Пост-Грес-Кью-Эл)</I>, |
|
|
|
|
также иногда говорят просто <I>Postgres</I>. Вы можете услышать как |
|
|
|
@ -146,18 +146,30 @@ |
|
|
|
|
http://www.PostgreSQL.org/files/documentation/faqs/FAQ_DEV.html</A> |
|
|
|
|
</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="1.2">1.2</A>) Каковы авторские права на PostgreSQL?</H3> |
|
|
|
|
<H3><A name="item1.2">1.2</A>) Кто управляет PostgreSQL?</H3> |
|
|
|
|
|
|
|
|
|
<P>Если вы ищите какого-то особенного человека, центральный |
|
|
|
|
комитет или управляющую компанию, то напрасно --- их нет. |
|
|
|
|
У нас есть ядро комитета и разработчиков, работающих с CVS, |
|
|
|
|
но эти группы служат больше для административных целей, чем |
|
|
|
|
для управления. Проект напрямую функционирует с помощью |
|
|
|
|
сообщества разработчиков и пользователей, к которому может |
|
|
|
|
присоединится каждый. Всё что нужно -- это подписаться на |
|
|
|
|
списки рассылки и участвовать в дискуссиях. (Подробности о |
|
|
|
|
том как включиться в разработку PostgreSQL смотрите в |
|
|
|
|
<a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> |
|
|
|
|
FAQ для разработчиков</A>.)</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="item1.3">1.3</A>) Каковы авторские права на PostgreSQL?</H3> |
|
|
|
|
|
|
|
|
|
<P>PostgreSQL распространяется по классической лицензии BSD. Эта |
|
|
|
|
лицензия не содержит ограничений на то, как будет использоваться |
|
|
|
|
исходный код. Нам нравится эта лицензия и у нас нет намерений её |
|
|
|
|
менять.</P> |
|
|
|
|
|
|
|
|
|
<P>Вот эта лицензия BSD, которую мы используем:</P> |
|
|
|
|
менять. Вот эта лицензия BSD, которую мы используем:</P> |
|
|
|
|
|
|
|
|
|
<P>Система Управления Базами Данных PostgreSQL</P> |
|
|
|
|
|
|
|
|
|
<P>Portions copyright (c) 1996-2005, PostgreSQL Global Development |
|
|
|
|
<P>Portions copyright (c) 1996-2006, PostgreSQL Global Development |
|
|
|
|
Group Portions Copyright (c) 1994-1996 Regents of the University of |
|
|
|
|
California</P> |
|
|
|
|
|
|
|
|
@ -182,7 +194,7 @@ |
|
|
|
|
"КАК ЕСТЬ" И КАЛИФОРНИЙСКИЙ УНИВЕРСИТЕТ НЕ ОБЯЗАН ПРЕДОСТАВЛЯТЬ |
|
|
|
|
СОПРОВОЖДЕНИЕ, ПОДДЕРЖКУ, ОБНОВЛЕНИЯ, РАСШИРЕНИЯ ИЛИ ИЗМЕНЕНИЯ.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="1.3">1.3</A>) На каких платформах работает PostgreSQL?</H3> |
|
|
|
|
<H3><A name="item1.4">1.4</A>) На каких платформах работает PostgreSQL?</H3> |
|
|
|
|
|
|
|
|
|
<P>Обычно, PostgreSQL может работать на любой современной платформе |
|
|
|
|
совместимой с Unix. В инструкции по установке, вы найдете список |
|
|
|
@ -203,13 +215,22 @@ |
|
|
|
|
<A href="http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F"> |
|
|
|
|
http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=postgreSQL&stype=all&sort=type&dir=%2F</A>.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="1.4">1.4</A>) Где можно взять PostgreSQL?</H3> |
|
|
|
|
<H3><A name="item1.5">1.5</A>) Где можно взять PostgreSQL?</H3> |
|
|
|
|
|
|
|
|
|
<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> |
|
|
|
|
|
|
|
|
|
<H3><A name="1.5">1.5</A>) Где получить поддержку?</H3> |
|
|
|
|
|
|
|
|
|
<H3><A name="item1.6">1.6</A>) Какая последняя версия?</H3> |
|
|
|
|
|
|
|
|
|
<P>Последний выпуск PostgreSQL - это версия 8.1.3</P> |
|
|
|
|
|
|
|
|
|
<P>Мы планируем выпускать новые старшие версии каждый год, |
|
|
|
|
а младшие версии каждые несколько месяцев.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="item1.7">1.7</A>) Где получить поддержку?</H3> |
|
|
|
|
|
|
|
|
|
<P>Сообщество PostgreSQL предоставляет помощь множеству пользователей |
|
|
|
|
через E-mail. Основной web-сайт для подписки на списки рассылки по |
|
|
|
@ -231,26 +252,87 @@ |
|
|
|
|
http://techdocs.postgresql.org/companies.php</A>.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="1.6">1.6</A>) Как мне сообщить об ошибке?</H3> |
|
|
|
|
<H3><A name="item1.8">1.8</A>) Как мне сообщить об ошибке?</H3> |
|
|
|
|
|
|
|
|
|
<P>Посетите страничку со специальной формой отчёта об ошибке в |
|
|
|
|
PostgreSQL по адресу: |
|
|
|
|
<A HREF="http://www.postgresql.org/support/submitbug"> |
|
|
|
|
http://www.postgresql.org/support/submitbug</A>.</P> |
|
|
|
|
|
|
|
|
|
<P>Также проверьте наличие более свежей версии PostgreSQL на нашем |
|
|
|
|
http://www.postgresql.org/support/submitbug</A>. |
|
|
|
|
Также проверьте наличие более свежей версии PostgreSQL на нашем |
|
|
|
|
FTP сайте <A href="ftp://ftp.postgresql.org/pub/"> |
|
|
|
|
ftp://ftp.PostgreSQL.org/pub/</A>. |
|
|
|
|
ftp://ftp.PostgreSQL.org/pub/</A>.</P> |
|
|
|
|
|
|
|
|
|
<P>На ошибки, уведомление о которых были сделаны через специальную |
|
|
|
|
форму или отправленные в какой-либо список рассылки PostgreSQL, |
|
|
|
|
обычно генерируется один из следующих ответов:</P> |
|
|
|
|
<UL> |
|
|
|
|
<LI>Это не ошибка и почему</LI> |
|
|
|
|
<LI>Это известная ошибка и она уже есть в списке |
|
|
|
|
<A HREF="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A></LI> |
|
|
|
|
<LI>Данная ошибка была исправлена в текущем выпуске</LI> |
|
|
|
|
<LI>Данная ошибка была исправлена, но исправление пока не попало в |
|
|
|
|
официальный выпуск</LI> |
|
|
|
|
<LI>Запрашивается более детальная информация: |
|
|
|
|
<UL> |
|
|
|
|
<LI>Операционная система</LI> |
|
|
|
|
<LI>Версия PostgreSQL</LI> |
|
|
|
|
<LI>Тест, воспроизводящий ошибку</LI> |
|
|
|
|
<LI>Отладочная информация</LI> |
|
|
|
|
<LI>Вывод backtrace отладчика</LI> |
|
|
|
|
</UL> |
|
|
|
|
</LI> |
|
|
|
|
<LI>Это новая ошибка. Может произойти следующее: |
|
|
|
|
<UL> |
|
|
|
|
<LI>Будет создано исправление, которое будет включено в следующий |
|
|
|
|
выпуск</LI> |
|
|
|
|
<LI>Ошибка не может быть исправлена немедленно и будет добавлена в список |
|
|
|
|
<A HREF="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A></LI> |
|
|
|
|
</UL> |
|
|
|
|
</LI> |
|
|
|
|
</UL> |
|
|
|
|
|
|
|
|
|
<H3><A name="1.7">1.7</A>) Какая последняя версия?</H3> |
|
|
|
|
<H3><A name="1.9">1.9</A>) Как найти информацию об известных ошибках |
|
|
|
|
или отсутствующих возможностях?</H3> |
|
|
|
|
|
|
|
|
|
<P>Последний выпуск PostgreSQL - это версия 8.0.3</P> |
|
|
|
|
<P>PostgreSQL поддерживает расширенный подкласс <SMALL>SQL:2003</SMALL>. |
|
|
|
|
Смотрите наш список <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A> |
|
|
|
|
на предмет известных ошибок, отсутствующих возможностей и будущих |
|
|
|
|
планов.</P> |
|
|
|
|
|
|
|
|
|
<P>Мы планируем выпускать новые старшие версии каждый год, |
|
|
|
|
а младшие версии каждые несколько месяцев.</P> |
|
|
|
|
<P>На запрос какой-либо возможности обычно приходят следующие ответы:</P> |
|
|
|
|
<UL> |
|
|
|
|
<LI>Данная возможность уже есть в списке |
|
|
|
|
<A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A></LI> |
|
|
|
|
<LI>Данная возможность нежелательна потому что: |
|
|
|
|
<UL> |
|
|
|
|
<LI>Она дублирует существующую функциональность, которая следует |
|
|
|
|
стандарту SQL</LI> |
|
|
|
|
<LI>Данная возможность сильно усложнила бы код, но дала бы маленькую |
|
|
|
|
выгоду</LI> |
|
|
|
|
<LI>Данная возможность небезопасна или ненадёжна</LI> |
|
|
|
|
</UL> |
|
|
|
|
</LI> |
|
|
|
|
<LI>Данная новая возможность добавлена в список |
|
|
|
|
<A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A> |
|
|
|
|
</LI> |
|
|
|
|
</UL> |
|
|
|
|
|
|
|
|
|
<P>PostgreSQL не использует какую-либо систему отслеживания ошибок, |
|
|
|
|
потому что мы обнаружили, что использование прямого обращения по |
|
|
|
|
электронной почте и обновляемого списка |
|
|
|
|
<A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A> |
|
|
|
|
является более эффективным. На практике, ошибки в программном |
|
|
|
|
обеспечении сохраняются очень недолго, а ошибки, которые важны |
|
|
|
|
большому количеству пользователей исправляются моментально. Есть |
|
|
|
|
только одно место, где можно найти все изменения, улучшения и |
|
|
|
|
исправления, сделанные в выпуске PostgreSQL - это журналы сообщений |
|
|
|
|
системы контроля версий |
|
|
|
|
<A HREF="http://www.postgresql.org/developer/sourcecode/">CVS</A>. |
|
|
|
|
Даже замечания к выпускам не содержат все изменения, сделанные |
|
|
|
|
в программном обеспечении.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="1.8">1.8</A>) Какая документация имеется в наличии?</H3> |
|
|
|
|
<H3><A name="item1.10">1.10</A>) Какая документация имеется в наличии?</H3> |
|
|
|
|
|
|
|
|
|
<P>PostgreSQL содержит много документации, включая большое руководство, |
|
|
|
|
страницы электронного руководства man и некоторые маленькие тестовые |
|
|
|
@ -274,15 +356,8 @@ |
|
|
|
|
|
|
|
|
|
<P>Наш сайт содержит еще больше информации.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="1.9">1.9</A>) Как найти информацию об известных ошибках |
|
|
|
|
или отсутствующих возможностях?</H3> |
|
|
|
|
|
|
|
|
|
<P>PostgreSQL поддерживает расширенный подкласс <SMALL>SQL</SMALL>-92. |
|
|
|
|
Смотрите наш список <A href="http://www.postgresql.org/docs/faqs.TODO.html">TODO</A> |
|
|
|
|
на предмет известных ошибок, отсутствующих возможностей и будущих |
|
|
|
|
планов.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="1.10">1.10</A>) Как мне научиться <SMALL>SQL</SMALL>?</H3> |
|
|
|
|
<H3><A name="item1.11">1.11</A>) Как мне научиться <SMALL>SQL</SMALL>?</H3> |
|
|
|
|
|
|
|
|
|
<P>Во-первых, возьмите одну из книг по PostgreSQL, о которых говорилось |
|
|
|
|
выше. Еще один учебник - это книга "Teach Yourself SQL in 21 Days, |
|
|
|
@ -301,13 +376,13 @@ |
|
|
|
|
и на <A href="http://sqlcourse.com/">http://sqlcourse.com.</A></P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="1.11">1.11</A>) Как присоединится к команде разработчиков?</H3> |
|
|
|
|
<H3><A name="item1.12">1.12</A>) Как присоединится к команде разработчиков?</H3> |
|
|
|
|
|
|
|
|
|
<P>Смотрите <a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> |
|
|
|
|
FAQ для разработчиков</A>.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="1.12">1.12</A>) Как сравнивать PostgreSQL с другими |
|
|
|
|
<H3><A name="item1.13">1.13</A>) Как сравнить PostgreSQL с другими |
|
|
|
|
<SMALL>СУБД</SMALL>?</H3> |
|
|
|
|
|
|
|
|
|
<P> |
|
|
|
@ -359,7 +434,7 @@ |
|
|
|
|
пользователей, руководствам и исходным текстам часто делают поддержку |
|
|
|
|
PostgreSQL превосходящей другие <SMALL>СУБД</SMALL>. Существует |
|
|
|
|
коммерческая поддержка по результам возникших инцидентов, которая |
|
|
|
|
доступна для тех кому она нужна. (Смотрите <A href="#1.5">Секцию 1.5</A>.)<BR> |
|
|
|
|
доступна для тех кому она нужна. (Смотрите <A href="#item1.7">Секцию 1.7</A>.)<BR> |
|
|
|
|
<BR> |
|
|
|
|
</DD> |
|
|
|
|
|
|
|
|
@ -373,25 +448,12 @@ |
|
|
|
|
</DD> |
|
|
|
|
</DL> |
|
|
|
|
|
|
|
|
|
<H3><A name="1.13">1.13</A>) Кто управляет PostgreSQL?</H3> |
|
|
|
|
|
|
|
|
|
<P>Если вы ищите какого-то особенного человека, центральный |
|
|
|
|
комитет или управляющую компанию, то напрасно --- их нет. |
|
|
|
|
У нас есть ядро комитета и разработчиков, работающих с CVS, |
|
|
|
|
но эти группы служат больше для административных целей, чем |
|
|
|
|
для управления. Проект напрямую функционирует с помощью |
|
|
|
|
сообщества разработчиков и пользователей, к которому может |
|
|
|
|
присоединится каждый. Всё что нужно -- это подписаться на |
|
|
|
|
списки рассылки и участвовать в дискуссиях. (Подробности о |
|
|
|
|
том как включиться в разработку PostgreSQL смотрите в |
|
|
|
|
<a href="http://www.postgresql.org/docs/faqs.FAQ_DEV.html"> |
|
|
|
|
FAQ для разработчиков</A>.)</P> |
|
|
|
|
|
|
|
|
|
<HR> |
|
|
|
|
|
|
|
|
|
<H3 align="center">Вопросы пользователей по клиентской части</H3> |
|
|
|
|
|
|
|
|
|
<H3><A name="2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?</H3> |
|
|
|
|
<H3><A name="item2.1">2.1</A>) Какие интерфейсы есть для PostgreSQL?</H3> |
|
|
|
|
|
|
|
|
|
<P>Установка PostgreSQL включает только <small>C</small> и встроенный |
|
|
|
|
(embedded) <small>C</small> интерфейсы. Все другие интерфейсы |
|
|
|
@ -406,7 +468,7 @@ |
|
|
|
|
в секции <i>Drivers/Interfaces</I>, а также через поиск в Интернет.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="2.2">2.2</A>) Какие инструменты существуют для использования |
|
|
|
|
<H3><A name="item2.2">2.2</A>) Какие инструменты существуют для использования |
|
|
|
|
PostgreSQL через Web?</H3> |
|
|
|
|
|
|
|
|
|
<P>Прекрасное введение во взаимодействие баз данных и Web можно найти на: |
|
|
|
@ -418,7 +480,7 @@ |
|
|
|
|
<P>В сложных случаях, многие пользуются Perl и DBD::Pg с CGI.pm |
|
|
|
|
или mod_perl.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="2.3">2.3</A>) Есть ли у PostgreSQL графический интерфейс |
|
|
|
|
<H3><A name="item2.3">2.3</A>) Есть ли у PostgreSQL графический интерфейс |
|
|
|
|
пользователя?</H3> |
|
|
|
|
|
|
|
|
|
<P>Да, подробности смотрите в <a href="http://techdocs.postgresql.org/guides/GUITools"> |
|
|
|
@ -428,12 +490,12 @@ |
|
|
|
|
|
|
|
|
|
<H2 align="center">Вопросы администрирования</H2> |
|
|
|
|
|
|
|
|
|
<H3><A name="3.1">3.1</A>) Как мне установить PostgreSQL в место отличное |
|
|
|
|
<H3><A name="item3.1">3.1</A>) Как мне установить PostgreSQL в место отличное |
|
|
|
|
от <I>/usr/local/pgsql</I>?</H3> |
|
|
|
|
|
|
|
|
|
<P>Задайте опцию <I>--prefix</I> когда запускаете <I>configure</I>.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="3.2">3.2</A>) Как мне управлять соединениями с других |
|
|
|
|
<H3><A name="item3.2">3.2</A>) Как мне управлять соединениями от других |
|
|
|
|
компьютеров?</H3> |
|
|
|
|
|
|
|
|
|
<P>По умолчанию, PostgreSQL разрешает только соединения на локальной |
|
|
|
@ -443,7 +505,7 @@ |
|
|
|
|
host-авторизация в файле <I>$PGDATA/pg_hba.conf</I> и перестартовать |
|
|
|
|
сервер.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="3.3">3.3</A>) Какие настройки мне нужно сделать для улучшения |
|
|
|
|
<H3><A name="item3.3">3.3</A>) Какие настройки мне нужно сделать для улучшения |
|
|
|
|
производительности?</H3> |
|
|
|
|
|
|
|
|
|
<P>Существует три главных области, которые потенциально могут |
|
|
|
@ -495,7 +557,7 @@ |
|
|
|
|
</DD> |
|
|
|
|
</DL> |
|
|
|
|
|
|
|
|
|
<H3><A name="3.4">3.4</A>) Какие возможности для отладки есть в |
|
|
|
|
<H3><A name="item3.4">3.4</A>) Какие возможности для отладки есть в |
|
|
|
|
наличии?</H3> |
|
|
|
|
|
|
|
|
|
<P>Есть множество установок в настройках сервера, начинающихся |
|
|
|
@ -504,7 +566,7 @@ |
|
|
|
|
и измерения производительности.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="3.5">3.5</A>) Почему я получаю сообщение <I>"Sorry, too |
|
|
|
|
<H3><A name="item3.5">3.5</A>) Почему я получаю сообщение <I>"Sorry, too |
|
|
|
|
many clients"</I> когда пытаюсь подключиться к базе?</H3> |
|
|
|
|
|
|
|
|
|
<P>Вы достигли установленного по умолчанию ограничения на 100 сессий |
|
|
|
@ -514,7 +576,7 @@ |
|
|
|
|
и перестартовать <I>postmaster</I>.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="3.6">3.6</A>) Почему необходимо делать dump и restore при |
|
|
|
|
<H3><A name="item3.6">3.6</A>) Почему необходимо делать dump и restore при |
|
|
|
|
обновлении выпусков PostgreSQL?</H3> |
|
|
|
|
|
|
|
|
|
<P>Разработчики PostgreSQL делают только небольшие изменения между |
|
|
|
@ -533,7 +595,7 @@ |
|
|
|
|
использовать <i>pg_upgrade</i> для этого выпуска.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="3.7">3.7</A>) Какое компьютерное "железо" я должен |
|
|
|
|
<H3><A name="item3.7">3.7</A>) Какое компьютерное "железо" я должен |
|
|
|
|
использовать?</H3> |
|
|
|
|
|
|
|
|
|
<P>Поскольку "железо" персональных компьютеров является наиболее |
|
|
|
@ -549,7 +611,7 @@ |
|
|
|
|
|
|
|
|
|
<H2 align="center">Вопросы эксплуатации</H2> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.1">4.1</A>) Как выполнить <SMALL>SELECT</SMALL> только |
|
|
|
|
<H3><A name="item4.1">4.1</A>) Как выполнить <SMALL>SELECT</SMALL> только |
|
|
|
|
для нескольких первых строчек запроса? Произвольной строки?</H3> |
|
|
|
|
|
|
|
|
|
<P>Для получения только нескольких строк, если вы знаете их количество |
|
|
|
@ -567,7 +629,7 @@ |
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="4.2">4.2</A>) Как мне найти какие таблицы, индексы, |
|
|
|
|
<H3><A name="item4.2">4.2</A>) Как мне найти какие таблицы, индексы, |
|
|
|
|
базы данных и пользователи существуют? Как мне увидеть запросы, |
|
|
|
|
которые использует <I>psql</I> для получения этой информации?</H3> |
|
|
|
|
|
|
|
|
@ -592,7 +654,7 @@ |
|
|
|
|
для получения информации из системных таблиц базы данных.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="4.3">4.3</A>) Как изменить тип данных колонки?</H3> |
|
|
|
|
<H3><A name="item4.3">4.3</A>) Как изменить тип данных колонки?</H3> |
|
|
|
|
|
|
|
|
|
<P>В 8.0 и более поздних версиях, изменение типа колонки выполняется |
|
|
|
|
очень легко через <SMALL>ALTER TABLE ALTER COLUMN TYPE</SMALL>.</P> |
|
|
|
@ -606,7 +668,7 @@ |
|
|
|
|
COMMIT; |
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.4">4.4</A>) Каковы максимальные размеры для строк в таблице, |
|
|
|
|
<H3><A name="item4.4">4.4</A>) Каковы максимальные размеры для строк в таблице, |
|
|
|
|
таблиц и базы данных?</H3> |
|
|
|
|
|
|
|
|
|
<P>Существуют следующие ограничения:</P> |
|
|
|
@ -663,7 +725,7 @@ |
|
|
|
|
с помощью функционального индекса из хэша MD5 длинной колонки, а |
|
|
|
|
полнотекстовое индексирование позволяет искать слова внутри колонки.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.5">4.5</A>) Как много дискового пространства в базе данных |
|
|
|
|
<H3><A name="item4.5">4.5</A>) Как много дискового пространства в базе данных |
|
|
|
|
нужно для сохранения данных из обычного текстового файла?</H3> |
|
|
|
|
|
|
|
|
|
<P>СУБД PostgreSQL может потребоваться дискового пространства до 5 раз |
|
|
|
@ -673,7 +735,7 @@ |
|
|
|
|
которых целое число и текстовое описание. При этом длина текста, |
|
|
|
|
в среднем, составляет 20 байт. Размер простого файла составит 2.8 MB. |
|
|
|
|
Размер базы PostgreSQL, содержащей эти же данные составит приблизительно |
|
|
|
|
6.4 MB из которых:</P> |
|
|
|
|
5.6 MB из которых:</P> |
|
|
|
|
<PRE> |
|
|
|
|
28 байт: на каждый заголовок строки в таблице (приблизительно) |
|
|
|
|
+ 24 байта: одно поле с целочисленным типом и одно текстовое поле |
|
|
|
@ -701,7 +763,7 @@ |
|
|
|
|
занимают очень мало места. |
|
|
|
|
</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.6">4.6</A>) Почему мои запросы работают медлено? Почему |
|
|
|
|
<H3><A name="item4.6">4.6</A>) Почему мои запросы работают медлено? Почему |
|
|
|
|
они не используют мои индексы?</H3> |
|
|
|
|
|
|
|
|
|
<P>Индексы не используются для каждого запроса. Они |
|
|
|
@ -726,15 +788,7 @@ |
|
|
|
|
сортировкой обычно быстрее, чем поиск по индексам в большой таблице. |
|
|
|
|
Однако, <SMALL>ORDER BY</SMALL> часто комбинируется с <SMALL>LIMIT</SMALL> |
|
|
|
|
и в этом случае индекс будет использоваться, поскольку при выполнении |
|
|
|
|
будет возвращаться небольшая часть таблицы. Фактически MAX() и MIN() не |
|
|
|
|
используют индексы, но индекс используется при построении запросов с |
|
|
|
|
<SMALL>ORDER BY</SMALL> и <SMALL>LIMIT</SMALL>: |
|
|
|
|
<PRE> |
|
|
|
|
SELECT col |
|
|
|
|
FROM tab |
|
|
|
|
ORDER BY col [ DESC ] |
|
|
|
|
LIMIT 1; |
|
|
|
|
</PRE> |
|
|
|
|
будет возвращаться небольшая часть таблицы.</P> |
|
|
|
|
|
|
|
|
|
<P>Если вам кажется, что оптимизатор некорректно выбирает последовательный |
|
|
|
|
перебор, используйте <CODE>SET enable_seqscan TO 'off'</CODE> и |
|
|
|
@ -753,7 +807,7 @@ |
|
|
|
|
<LI>Строка поиска не должна начинаться с символа класса, т.е. [a-e].</LI> |
|
|
|
|
<LI>Поиск независимый от регистра, такой как <small>ILIKE</small> и |
|
|
|
|
<i>~*</i> не использует индексы. Вместо него, используйте индексы |
|
|
|
|
выражений, которые описываются в секции <A href="#4.8">4.8</A>.</LI> |
|
|
|
|
выражений, которые описываются в секции <A href="#item4.8">4.8</A>.</LI> |
|
|
|
|
<LI>Во время <i>initdb</i> должна использоваться локаль по умолчанию |
|
|
|
|
<i>C</i>, потому что не существует возможности узнать следующий наибольший |
|
|
|
|
символ для не-C локали. Вы можете для таких случаев создать специальный |
|
|
|
@ -765,13 +819,13 @@ |
|
|
|
|
если типы данных точно не совпадали с индексными типами колонок. Это |
|
|
|
|
особенно касалось int2, int8 и numeric индексов колонок.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.7">4.7</A>) Как посмотреть на то, как оптимизатор выполняет |
|
|
|
|
<H3><A name="item4.7">4.7</A>) Как посмотреть на то, как оптимизатор выполняет |
|
|
|
|
мой запрос?</H3> |
|
|
|
|
|
|
|
|
|
<P>Смотрите страницу руководства посвященную <SMALL>EXPLAIN</SMALL>.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="4.8">4.8</A>) Как мне выполнить поиск регулярного выражения |
|
|
|
|
<H3><A name="item4.8">4.8</A>) Как мне выполнить поиск регулярного выражения |
|
|
|
|
и поиск независимый от регистра букв поиск регулярного выражения? |
|
|
|
|
Как мне использовать индекс для поиска независимого от регистра букв?</H3> |
|
|
|
|
|
|
|
|
@ -799,7 +853,7 @@ |
|
|
|
|
только в определённом регистре, используйте ограничение |
|
|
|
|
<SMALL>CHECK</SMALL> или проверку через триггер.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.9">4.9</A>) Как мне определить, что значение поля равно |
|
|
|
|
<H3><A name="item4.9">4.9</A>) Как мне определить, что значение поля равно |
|
|
|
|
<SMALL>NULL</SMALL> в каком-либо запросе? Могу я отсортировать поля |
|
|
|
|
<SMALL>NULL</SMALL> или нет?</H3> |
|
|
|
|
|
|
|
|
@ -823,7 +877,7 @@ |
|
|
|
|
ORDER BY (col IS NOT NULL); |
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.10">4.10</A>) Каковы отличия между разными символьными |
|
|
|
|
<H3><A name="item4.10">4.10</A>) Каковы отличия между разными символьными |
|
|
|
|
типами?</H3> |
|
|
|
|
<BLOCKQUOTE> |
|
|
|
|
<TABLE> |
|
|
|
@ -882,7 +936,7 @@ |
|
|
|
|
которых могут включать <SMALL>NULL</SMALL> байты. Все типы описанные |
|
|
|
|
здесь, имеют сходные характеристики производительности.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.11.1">4.11.1</A>) Как мне создать поле |
|
|
|
|
<H3><A name="item4.11.1">4.11.1</A>) Как мне создать поле |
|
|
|
|
serial/с-авто-увеличением?</H3> |
|
|
|
|
|
|
|
|
|
<P>PostgreSQL поддерживает тип данных <SMALL>SERIAL</SMALL>. Он |
|
|
|
@ -906,13 +960,13 @@ |
|
|
|
|
Смотрите подробности о последовательностях на странице руководства |
|
|
|
|
посвященной <I>create_sequence</I>. |
|
|
|
|
|
|
|
|
|
<H3><A name="4.11.2">4.11.2</A>) Как мне получить значение при вставке |
|
|
|
|
<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="#4.11.1">4.11.1</A>, пример |
|
|
|
|
явно. Используйте таблицу-пример в <A href="#item4.11.1">4.11.1</A>, пример |
|
|
|
|
в псевдоязыке покажет как это делается:</P> |
|
|
|
|
<PRE> |
|
|
|
|
new_id = execute("SELECT nextval('person_id_seq')"); |
|
|
|
@ -936,14 +990,14 @@ |
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="4.11.3">4.11.3</A>) Не может ли получиться так, что |
|
|
|
|
<H3><A name="item4.11.3">4.11.3</A>) Не может ли получиться так, что |
|
|
|
|
использование <I>currval()</I> и <I>nextval()</I> приведет к |
|
|
|
|
зациклированию с другими пользователями?</H3> |
|
|
|
|
|
|
|
|
|
<P>Нет. <i>currval()</i> возвращает текущее значение, назначенное вашей |
|
|
|
|
сессией, а не другими сессиями.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.11.4">4.11.4</A>) Почему числа из моей последовательности |
|
|
|
|
<H3><A name="item4.11.4">4.11.4</A>) Почему числа из моей последовательности |
|
|
|
|
не используются снова при отмене транзакции? Почему создаются разрывы |
|
|
|
|
при нумерации в колонке, где я использую последовательность/SERIAL?</H3> |
|
|
|
|
|
|
|
|
@ -953,7 +1007,7 @@ |
|
|
|
|
нумерации при отмене транзакций.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="4.12">4.12</A>) Что такое <SMALL>OID</SMALL>? Что такое |
|
|
|
|
<H3><A name="item4.12">4.12</A>) Что такое <SMALL>OID</SMALL>? Что такое |
|
|
|
|
<SMALL>CTID</SMALL>?</H3> |
|
|
|
|
|
|
|
|
|
<P>Каждая, создаваемая в PostgreSQL табличная строка, получает уникальный |
|
|
|
@ -978,7 +1032,7 @@ |
|
|
|
|
указателя на физические записи.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="4.13">4.13</A>) Почему я получаю ошибку <I>"ERROR: Memory |
|
|
|
|
<H3><A name="item4.13">4.13</A>) Почему я получаю ошибку <I>"ERROR: Memory |
|
|
|
|
exhausted in AllocSetAlloc()"</I>?</H3> |
|
|
|
|
|
|
|
|
|
<P>Предположительно у вас закончилась виртуальная память |
|
|
|
@ -998,13 +1052,13 @@ |
|
|
|
|
клиентом, потому что backend возвращает слишком большой объем данных, |
|
|
|
|
попытайтесь выполнить эту команду перед запуском клиента. |
|
|
|
|
|
|
|
|
|
<H3><A name="4.14">4.14</A>) Как мне узнать, какая версия PostgreSQL |
|
|
|
|
<H3><A name="item4.14">4.14</A>) Как мне узнать, какая версия PostgreSQL |
|
|
|
|
запущена?</H3> |
|
|
|
|
|
|
|
|
|
<P>Из <I>psql</I>, наберите <CODE>SELECT version();</CODE></P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="4.15">4.15</A>) Как мне создать колонку которая по умолчанию |
|
|
|
|
<H3><A name="item4.15">4.15</A>) Как мне создать колонку которая по умолчанию |
|
|
|
|
будет содержать текущее время?</H3> |
|
|
|
|
|
|
|
|
|
<P>Используйте <I>CURRENT_TIMESTAMP</I>:</P> |
|
|
|
@ -1012,7 +1066,7 @@ |
|
|
|
|
CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); |
|
|
|
|
</PRE> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.16">4.16</A>) Как мне выполнить внешнее связывание?</H3> |
|
|
|
|
<H3><A name="item4.16">4.16</A>) Как мне выполнить внешнее связывание?</H3> |
|
|
|
|
|
|
|
|
|
<P>PostgreSQL поддерживает внешнее связывание, |
|
|
|
|
используя стандартный синтаксис SQL. Вот два примера:</P> |
|
|
|
@ -1036,7 +1090,7 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); |
|
|
|
|
<SMALL>RIGHT</SMALL> и <SMALL>FULL</SMALL> связываниях. Обычные |
|
|
|
|
связывания называются <SMALL>INNER</SMALL> связывания.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.17">4.17</A>) Как выполнять запросы, использующие несколько |
|
|
|
|
<H3><A name="item4.17">4.17</A>) Как выполнять запросы, использующие несколько |
|
|
|
|
баз данных?</H3> |
|
|
|
|
|
|
|
|
|
<P>Не существует способа создать запрос к базам данных отличным от текущей. |
|
|
|
@ -1048,14 +1102,14 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); |
|
|
|
|
соедиенения с различными базами данных и таких образом объединять |
|
|
|
|
информацию из них.</P> |
|
|
|
|
|
|
|
|
|
<H3><A name="4.18">4.18</A>) Как мне вернуть из функции несколько строк таблицы?</H3> |
|
|
|
|
<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> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="4.19">4.19</A>) Почему я получаю ошибку "relation with OID #### |
|
|
|
|
<H3><A name="item4.19">4.19</A>) Почему я получаю ошибку "relation with OID #### |
|
|
|
|
не существует", когда обращаютсь к временным таблицам в функциях PL/PgSQL?</H3> |
|
|
|
|
|
|
|
|
|
<P>PL/PgSQL кэширует сценарии функции и один из негативных эффектов этого |
|
|
|
@ -1068,7 +1122,7 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); |
|
|
|
|
перегенерироваться каждый раз.</P> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<H3><A name="4.20">4.20</a>) Какие есть решения для репликации?</H3> |
|
|
|
|
<H3><A name="item4.20">4.20</a>) Какие есть решения для репликации?</H3> |
|
|
|
|
|
|
|
|
|
<P>Хотя "репликация" -- это единый термин, есть несколько разных технологий |
|
|
|
|
для выполнения репликаций с разными особенностями для каждой.</P> |
|
|
|
@ -1088,7 +1142,7 @@ CREATE TABLE test (x int, modtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); |
|
|
|
|
популярным решением для такой репликации в PostgreSQL является |
|
|
|
|
<A href="http://pgfoundry.org/projects/pgcluster/">Pgcluster</A>. |
|
|
|
|
|
|
|
|
|
<H3><A name="4.21">4.21</A>) Почему имена таблицы и колонок не |
|
|
|
|
<H3><A name="item4.21">4.21</A>) Почему имена таблицы и колонок не |
|
|
|
|
распознаются в в моём запросе?</H3> |
|
|
|
|
|
|
|
|
|
<P>Наиболее часто это происходит из-за использования двойных кавычек в |
|
|
|
|