Всем привет! Я только начинаю постигать SQL и PostgeSQL, поэтому вопрос у меня довольно-таки простой и скорее всего имеет тривиальное решение, но поскольку с аспектами SQL я знаком плохо и документацию пока ещё воспринимаю не до конца 
Задача состоит в следующем:
Имеется база данных, в ней две таблицы: table1 (id, table2_id) и table2(id, column1, column2). По сути table2_id - это FOREIGN KEY, но в БД он так не определён, поскольку приложение, которое использует эту БД не позволяет использовать такиею ключи, точнее это крайне не желательно. Отсюда собственно и проблема.
День добрый
Я работаю с PostgreSQL 8.4
возникли проблемы при попытке вставить бинарные данные.
const char * paramValues[1]; int paramLengths[1]; int paramFormats[1]; int binaryIntVal = 4; paramValues[0] = (char*)&binaryIntVal; paramLengths[0] = sizeof(int);; paramFormats[0] = 1; res = PQexecParams(conn,"INSERT INTO table_user(user_accauntstr) VALUES ( $1::bytea[] )",1,NULL,paramValues,paramLengths,paramFormats,1);
В результате получаю ошибку:
PGRES_FATAL_ERROR: number of array dimensions (67108864) exceeds the maxi
mum allowed (6)
Добрый день.
Подскажите пожалуйста как написать функцию возвращаю множество столбцов и строк (таблицу) на plpgsql.
На SQL все отлично
CREATE OR REPLACE FUNCTION rating_point_list_default(IN p_userid integer, IN p_idel integer) RETURNS TABLE(id integer, title character varying, mark smallint) AS $BODY$ SELECT service.id,service.title,mark FROM servicecategory,service LEFT OUTER JOIN rating ON (service.id = rating.serviceid AND rating.userid=$1 AND rating.pointid=$2) WHERE category IN('vid') AND servicecategory.id=service.categoryid;
Хочу написать клиент для Postgresql.
Мои действия:
-Добавил в VC++ Directories->Include Directories папку ...pgsql\include
-Добавил в VC++ Directories->Library Directories папку ...pgsql\lib
-Добавил в Linker->Command Line -lpq
Код выгляди так:
#include <libpq-fe.h> int main(){ const char * conninfo; PGconn *conn; conninfo = "hostaddr = 127.0.0.1"; conn = PQconnectdb(conninfo); PQfinish(conn); RETURN 0; }
В результате получаю:
1>LINK : warning LNK4044: unrecognized OPTION '/lpq'; ignored
Доброго всем времени суток.
Уважаемый форум
Выполняю
elmg=# copy wve(x,y,z,x_,y_,z_,dt,tm,sid) from '/export/public/pdata/wv.sql' delimiters ',';
ERROR: missing data for column "dt"
CONTEXT: COPY wve, line 84: "000575,002781,001895,40021,67330112,1"
Файл wv.sql иногда в некоторых строках не содержит все поля (последовательность формирует оборудование), поэтому команда copy, в этом случае, не проходит.
Существует ли возможность, не загружая в таблицу wve неполные строки файла wv.sql, исполнить команду copy и загрузить правильные строки файла wv.sql?
Доброго времени суток!
Postgresql под Windows. Пытаюсь выполнить COPY из файла:
"C:\Documents and Settings\USER1\Local Settings\Temp\cache.tmp"
Ни в какую не желает переваривать путь с пробелами - орёт, что нет такого файла.
Обратные слэши на прямые - заменял а-ля *nix, пытался и так:
"C:/DOCUME~1/USER1/LOCALS~1/TEMP/CACHE.TMP"
и так:
"C:/Documents\ and\ Settings/USER1/Local\ Settings/Temp/cache.tmp"
ни в какую - нет такого файла и всё тут.
Подскажите - в какой вид путь привести, чтобы postgres его проглотил?
Подскажите новичку...
Работаю на php c postgres
В таблице есть поле id - первичный ключ : nextval('table_id_seq'::regclass)
Делаю новую запись запросом
$result = pg_query($connection, "INSERT INTO table ... ");
В новой записи id заполнился автоматически.
Теперь нужно как-то узнать значение id, как это можно сделать?
Подскажите, кодировка в функции convert win866 - это 866(DOS)?
Создаю табличку с определенными полями, затем ALTER TABLE ttt DROP FIELD qqq;
И удаленные поля мешают работать приложению, т.к. поле не удаляется до конца. появляется pg.dropped.oid
Чтоб получить, какие имена полей у таблицы я отправляю запрос $type - содержит таблицу
$query_choise = pg_query($db, "SELECT pg_class.relname, pg_attribute.attname FROM pg_catalog.pg_class, pg_catalog.pg_attribute WHERE pg_class.relname='$type' AND pg_class.oid = pg_attribute.attrelid");
полученный результат я в цикле кладу в массив и вывожу на экран.