Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > Postgresql for WinXP


Автор: ImA 15.7.2008, 05:52
Моё почтение.
Хочу попросить Вас порекомендовать литературу по программированию, что называется для чайников, на постгрес...
Ибо поиск в интернете ведет в большинстве своем либо к ораклу, либо к профессиональному подходу, либо в гущи консоли freebsd...

Автор: Magnifico 15.7.2008, 09:52
для винды нет документации - да и не нужна она.
(все команды  и приемы программирования одинаковые)
просто замечательный мануал:
http://www.postgresql.org/docs/8.3/interactive/index.html

очень старенькая книжка
http://www.all-ebooks.com/2006/04/23/postgresql_dlya_professionalov.html

Автор: ImA 16.7.2008, 02:35
старенькую книжечку, спасибо, скачала... 
а есть какой-нибудь другой замечательный мануал, только на русском? 

Автор: Magnifico 16.7.2008, 09:40
вот это еще помотри:
http://postgresql.ru.net/docs/FAQ_russian.html
http://resurection.ru/doc/postgres/index.html
http://www.inp.nsk.su/~baldin/PostgreSQL/index.html

помощник на всякий случай:
http://www.translate.ru/text.asp

Автор: ImA 16.7.2008, 12:04
 smile именно по триггерам и хранимым процедурам все на инглише, спасибо за переводчик! 

Автор: ImA 17.7.2008, 10:33
можно попросить примерное написание триггерной функции, а то в этой старенькой книжечке все так туманно и неполно про них расписано?  smile 
и примерное написание вызова триггера из триггера

Автор: Magnifico 17.7.2008, 12:47
Код

create table Clients
(
id  int not null,
FIO varchar(25)
)
-------------------------------------------------
create table Orders
(
orderId serial not null,
clientId int,
orderName varchar(25)
)

---процедура проверяет существование клиента  при вставке в таблицу Orders-----
create or replace function  ifClientExists()
returns trigger as
$body$
begin
if not exists(select id from Clients where id = NEW.ClientId) then
   RAISE EXCEPTION 'The client  id =  %  does not exist ', New.ClientId;
end if;
RETURN NEW;
end;
$body$
Language 'plpgsql';
--------------------------------------
create trigger check_clientid before insert or update on Orders
for each row execute procedure  ifClientExists();
----------------------------------------------------------
insert into clients 
select 1,'Vasya' union all
select 2,'Petya'
------------------------------------
insert into orders(clientId,orderName)
select  1,'Tee' union all
select 2,'Bear' 
------------исключение-------------------
insert into orders(clientId,orderName)
select 3,'BigMac'
------------исключение---------------------
update orders set clientid= 4 where clientid=1

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)