Создаю такую функцию:
CREATE OR REPLACE FUNCTION "public"."checkkart" (_numkart text, out skidka integer) AS
$body$
declare
colname record;
_discount integer;
begin
FOR colname IN SELECT * from discount where bar=_numkart
LOOP -- если запись найдена то присваем skidka=3
begin
select disc_perc into _discount from discount where bar=_numkart ;
skidka=3;
exit; --выход из цикла
end;
END LOOP;
if skidka>0 then exit; --если были найдены записи, то выходим.
else
skidka=0; --если не были найдены то skidka=0
Имеется строка в БД в ячейке datetime вида: "2010-03-24 00:18:26". Каким образом можно создать запрос на выборку по дате (отдельно) и по времени?
Существует база данных на MSSQL ее нужно перевести в Postgres. С переводом таблиц не было проблем, а вот с фунциями возникли проблемы. Вот код функции на MSSQL:
ALTER FUNCTION [dbo].[SupplierDebt]
(
@SupplierID int
)
RETURNS float
AS
BEGIN
Declare @Sum float;
Select @Sum = sum([Sum]) FROM SuppliersDebt WHERE
SupplierID = @SupplierID
IF @Sum IS NULL RETURN 0;
RETURN @Sum;
END
а вот я примерно пытался написать на Postgres:
create or replace function SuppliersDebt(mSupplierID int) RETURNS FLOAT AS $$
DECLARE Summ float;
BEGIN
SELECT Summ = Sum(Sum)
Доброе время суток.
Возник вопрос по обновлению БД. Ситуация такова, что есть 2 дампа ДБ. Один из низ является развитем предыдущего. На основе старой схемы есть рабочая БД , как её можно привести к виду во втором дампе ?

Можете сказать как найти битые записи(в таблице 720000 записей)?
Даю запрос выдаёт
invalid memory alloc request size 42929667293 Использую PostgreSQL 8.3.6. Задача поменять владельцев SEQUENCE.
В документации на 8.4 написано
ALTER SEQUENCE name OWNER TO new_owner
Но на текущей версии это не прокатывает 
Есть ли другой способ?

Добрый день.
Есть проблема. В таблицу загружаются данные. По не понятно причине, при загрузке id и oid сбились (записи битые). Вопрос такой
как узнать какая последняя запись была правильной? Есть поле дата, у битого id год даты="u2". Беру id-1 и oid-1, год даты="10" , хотя с 2010 годом загрузка не работала. Что делать?

Извините за повтор, наверно уже было такое... но у меня чтото ниче не получается, и не пойму как вообще сделать...
удалил из БД blodы все. и еще кучу лишней инфы. размер как был 12 Гб так и остался...
как на рабочей БД убить все то что я дропнул уже??
Заранее спасибо!

Цель такая...
Есть таблица с странами..
id name
1 RUS
2 JPN
3. MEX
4. USA
5. KZ
6. UKR
Мне надо вывести все эти страны с условием: 1) сначало идет USA, 2) Потом RUS 3) А потом все оставльное..
ПС. предлагать еще одно поле для сортировки не прокатывает. надо сделать в одном SQL запросе.
с UNION чтото не прокатывает(
"SELECT * FROM country WHERE id = {ID_EUROPE}
UNION
SELECT * FROM country WHERE id = {ID_USA}
UNION
SELECT * FROM country WHERE id = {ID_RUSSIA}
UNION
SELECT * FROM country WHERE id NOT IN ({ID_EUROPE}, {ID_USA}, {ID_RUSSIA}) ORDER BY `name` ASC;"
всем привет. Подскажите народ пожалуйста как мне сделать FOREIGN KEY, так чтобы он ссылался на другие таблицы. В общем у меня есть таблица пользователи и ее как говарится должен участвовать еще как минимум в 2 таблицах, при этом он не должен меняться и удаляться. Все действия чтобы были допустимы только в главной таблице где он является PRIMARY KEY. Помогите пожалуйста. Раньше я работала с другой БД в которой если столбцу присваиваешь форен с сылкой на его основную таблицу то данные автоматически переносились в другую таблицу. просто не могу найти решения своего вопроса. Заранее благодарна.