Здравствуйте!
Недавно начил использовать Postgre и столкнулся со следующей проблемой:
Определил свой тип (достаточно простой)
CREATE TYPE ibpc AS (
place integer,
code integer
);
создал таблицу, определил в ней поле типа ibpc и хочу его сделать первичным ключом, на что получаю ошибку с предложением определить операторный класс по умолчанию. Умом понимаю, что для построения индекса нового типа мне нужно определить операторы сравнения, как это сделать я понял (CREATE OPERATOR) на примере =, но как определить операторный класс???
Добрый день, возникла такая проблема
Нужно создать функцию на языке sql которая будет выполнять запрос вида
select $1 from $2
допусти её имя selectall,
тогда selectall(usename,pg_user) - выполняет запрос select usename from pg_user
Как ни пробывал, не получается
Заранее спасибо
Здравсвтуйте!
Задался таким вопросом: Работают ли функциональные индксы для view. И можно ли создавать функциональные индексы по самописным функциям.
Более подробный пример:
таблица items:
item_id, name
таблица types:
type_id, name, price
таблица item_types:
item_id, type_id
функция get_item_price(item_id):
считает цену для заданного item_id:
SELECT sum(price) FROM types INNER JOIN item_types ON item_types.type_id = types.type_id WHERE item_types.item_id = $1
view item_price:
item_id, get_item_price(item_id) as item_price
Добрый вечер!
Подскажите, пожалуйста, мне по проблеме.
Есть поле "ts_complete". В нем хранятся даты в формате 2009-09-28 13:22:25.326.
В одном из разделов делаю выборку по условию "ts_complete" >= '2009-08-28' AND "ts_complete" <= '2009-09-28'.
В результате получаю все строки с нужными мне датами, но почему-то строки, которые имеют дату 2009-09-28 не попадают в вывод. То есть получается, что я не могу получит данные по "ts_complete" <= '2009-09-28' - именно не только меньше, но и равно. Я немного не понимаю, может, это специфика выборки по времени какая-то?
Кто-то может подсказать как создать таблицу с полем типа UUID, а то в документации такой тип описан, а при создании сообщается о том, что такой тип не существует.
Есть база:
create table head (type varchar(255), tbl varchar(255));
create table type1 (t1var1 int, t1var2 int, t1var3 int);
create table type2 (t2var1 int, t2var2 int);
..
insert into head values('item1','type1');
insert into head values('item2','type2');
..
insert into type1 values (123,323,123);
..
insert into type2 values (43243,23423);
..
insert into type3 values (43243,23423);
..
Нужна серверная процедура которая бы делала так:
select foo('item1'); --т.е. select * from type1;
t1var1|t1var2|t1var3|
123|323|123|
select foo('item2'); -- т.е. select * from type2;
Кто может, подскажите, пожалуйста, как или откуда можно вытащить текст хранимых функций, который отображается в PGAdmine в панеле "SQL pane".
Есть ли возможность изменить очередь расположения полей в таблице ?
Или если стандартных средств нет, то как проще это сделать ?
Мне нужно связать таблицу suppliers(поставщики) с goods(товары) связью один ко многим. Suppliers главная таблица, goods - дочерняя. Связывать нужно табл. Suppliers ключевым полем sups_c_suplr с полем gds_c_suplr табл.goods. Как связать эти таблицы по указанным полям? Что для этого нужно создать и сделать? Можно ли в PostgreSQL посмотреть потом связи между таблицами в графическом виде и как?
Я делал так:
1) Создал индекс для поля gds_c_suplr.
2) Нажав по таблице suppliers правой кнопкой я выбрал создать вторичный индекс (Foreign Key).
Строю запрос из delphi c помощью компонент PSQL (v 2.5.1)
select * from telegram where id_excav=2 and dt_send BETWEEN '13.05.2009' and '13.05.2009'
PSQLDATABAS.params
ConnectionTimeout=15
Port=5432
SSLMode=prefer
DatabaseName=+++++
UID=postgres
PWD=++++++
Host=localhost
сервер на WinXP
Региональные параметры даты DD.MM.YYYY
PostgreSQL configuration file
datestyle = 'sql, dmy'
lc_messages = 'Russian_Russia.1251' # locale for system error message
lc_monetary = 'Russian_Russia.1251' # locale for monetary formatting