Мы хранимые процедуры создаем в схеме public, и генерируем много
схем с одинаковыми наборами таблиц. Каждый пользователь попадает в свою схему. Для этого используем
DISCARD ALL, а затем SET SEARCH_PATH = 'название схемы', public.
Собственно пришлось заниматься переносом с одного сервера на другой одной не простой базки. Ну и в ходе переноса возник вопрос а как можно перенести пользователей postgresql с одного сервера на другой? Прошу простить за мой французский только 3 день осваиваю postgresql
http://dl.dropbox.com/u/412791/Screenshots/hackernews.png
Есть база данных в PostgreSQL. Вот демо с запроса.
SELECT vk_groups.screen_name, vk_posts."text",
Доброго времени суток.
У меня проблемка - ищу уже второй день подряд, ответ на свой вопрос.
Мне нужно, чтобы функция отдала мне содержимое таблицы(в данном случае).
Нашел у вас на форуму замечательный ответ по сабжу http://postgresql.ru.net/node/178974#comment-875
В частности интересует второй изложенный способ. Сделал все как советовал автор ответа, но postgres выдает ошибку :
ERROR: function result type must be text because of OUT parameters
SQL state: 42P13
Вот листинг функции:
CREATE OR REPLACE FUNCTION test.fm ( out o_name text) returns setof RECORD
Есть две таблички:
Таблица 1 (используется в качестве справочника), содержит 70 тысяч строк:
код1 | код2
Таблица 2 (используется в качестве хранилища данных), содержит 1,5млн.строк:
дата | код1 | данные1| данные2
При этом далеко не все коды из Таблицы 1 используются в Таблице 2 (около 10%).
Соответственно, хочу создать частичный индекс:
CREATE INDEX "tbl1_indx1"
ON "table1"
USING btree
(code1)
where code1 in
(select code1
from "table2"
group by code1)
Однако выпадает следующая ошибка:
********** Ошибка **********
ERROR: cannot use subquery in index predicate
Привет. Вставляю строку в таблицу. На инсерт висит С триггер. Задача - получить данные вставляемой строки.
Вот код:
IF (TRIGGER_FIRED_BY_INSERT(trigdata->tg_event)) { rettuple = trigdata->tg_trigtuple; bool isnull = false; uint32 x=rettuple->t_len; int8 f; f = (int8) GetAttributeByNum(rettuple->t_data, 1, &isnull); elog(INFO,"len of tuple: %d",x); elog(INFO,"first column being inserted <img class="ccfilter smileys" src="https://pgdocs.ru/sites/ALL/modules/ccfilter/smileys/al.gif" alt="x:" title="x:" /> %d",f); }
Всех с прошедими и настпупающими . Уважаемые гуру научите плохому.
установлена 1с 8 на посгри на linux. все устраивает, но надо настроить бэкап. написал небольшой скрипт
#!/bin/sh
#
BackUpDir="home/user/backup1c/"
DateName='date +%d.%m.%Y-%H.%M'
cd $backUpDir
echo Начато резервное копирование базы данных
pg_dump -Fc -U postgres "workdb" > $DateName.workdb.backup
echo Резервное копирование завершено
дал вот такие на него права
итого 4
-rwxrwxrwx 1 postgres chkpwd 299 2011-12-29 16:38 backup.sh*
но при выполнений вываливается ошибка.
Здравствуйте! Подскажите, пожалуйста, как обеспечить уникальность текстового поля независимо от регистра наиболее оптимальным способом (скажем: есть таблица товаров, в которой название товара должно быть уникально, т.е. если есть, например, товар 'Коньки', то 'КоНькИ' вставить уже нельзя). Я вижу два варианта:
1) создание уникального индекса для поля:
CREATE UNIQUE INDEX index_for_full_product_uniqueness
ON products (upper(firstname))
Проблема в следующем.
Код записи таблицы в файл в мой процедуре такой:
copy (select table_to_xml('a', true, true, '')) to
'D:\\TestTask\\PersonsForm\\use.xml';
Но xml-файл получается такой:
Не могу копировать в таблицу, указав не полный путь к файлу, а имя файла. В идеале мне нужно, чтоб было так:
CREATE OR REPLACE FUNCTION import(xml) returns varchar(12) as $$
DECLARE
u text;
str varchar(65);
BEGIN
SET xmloption TO CONTENT;
u:=XMLSERIALIZE (content $1 as text);
DELETE from "a";
IF ( xml_is_well_formed(u)=TRUE) THEN
copy "a"
from 'D:\\TestTask\\PersonsForm\\use.xml'
Delimiter as ';';
IF ((select trim(a.addition_code) from a)='1') THEN
IF ((select trim(a.name_for_print) from a)<>'') THEN
str:=(select '%'||(trim(a.name_for_print))||'%' from a);
DELETE from a;