Статус:
Offline
Реєстрація: 28.07.2010
Повідом.: 31
Реєстрація: 28.07.2010
Повідом.: 31
Кто знает sql подскажите пожалуйста. Перед мною стоит такое задание
Некие поставщики снабжают товарами клиентов. Асортимент товаров велик. Спроектируйте приложение для сопровождения баз данных, которая бы позволяла анализировать следующее:
– какие товары заказывал клиент X у поставщика Y;
– какова стоимость заказа клиента X
Пишу для Oracle 10g код такой
Create table "Client" (
"id_client" Integer NOT NULL ,
"id_supler" Integer NOT NULL ,
primary key ("id_client")
)
/
Create table "supplier" (
"id_supler" Integer NOT NULL ,
"product" Varchar2(20),
"price" Integer,
primary key ("id_supler")
)
/
Alter table "Client" add foreign key ("id_supler") references "supplier" ("id_supler")
Create Trigger "tu_Client"
after update of "id_client","id_supler" on "Client"
referencing new as new_upd old as old_upd
for each row
declare numrows integer;
begin
-- Restrict parent "supplier" when child "Client" updated
if :new_upd."id_supler" != :old_upd."id_supler" then
begin
select count(*) into numrows
from "supplier"
where :new_upd."id_supler" = "supplier"."id_supler";
if (numrows = 0) then
RAISE_APPLICATION_ERROR(-20002,'Parent does not exist in parent table supplier. Cannot update child table Client.');
end if;
end;
end if;
end;
/
-- Insert trigger for "Client"
Create Trigger "ti_Client"
after insert on "Client"
referencing new as new_ins
for each row
declare numrows integer;
begin
-- Restrict child "Client" when parent "supplier" insert
if (:new_ins."id_supler" is not null) then
begin
select count(*) into numrows
from "supplier"
where :new_ins."id_supler" = "supplier"."id_supler";
if (numrows = 0) then
RAISE_APPLICATION_ERROR(-20004,'Parent does not exist in parent table supplier. Cannot insert into child table Client.');
end if;
end;
end if;
end;
/
А как сделать стоимость заказа клиента???
Некие поставщики снабжают товарами клиентов. Асортимент товаров велик. Спроектируйте приложение для сопровождения баз данных, которая бы позволяла анализировать следующее:
– какие товары заказывал клиент X у поставщика Y;
– какова стоимость заказа клиента X
Пишу для Oracle 10g код такой
Create table "Client" (
"id_client" Integer NOT NULL ,
"id_supler" Integer NOT NULL ,
primary key ("id_client")
)
/
Create table "supplier" (
"id_supler" Integer NOT NULL ,
"product" Varchar2(20),
"price" Integer,
primary key ("id_supler")
)
/
Alter table "Client" add foreign key ("id_supler") references "supplier" ("id_supler")
Create Trigger "tu_Client"
after update of "id_client","id_supler" on "Client"
referencing new as new_upd old as old_upd
for each row
declare numrows integer;
begin
-- Restrict parent "supplier" when child "Client" updated
if :new_upd."id_supler" != :old_upd."id_supler" then
begin
select count(*) into numrows
from "supplier"
where :new_upd."id_supler" = "supplier"."id_supler";
if (numrows = 0) then
RAISE_APPLICATION_ERROR(-20002,'Parent does not exist in parent table supplier. Cannot update child table Client.');
end if;
end;
end if;
end;
/
-- Insert trigger for "Client"
Create Trigger "ti_Client"
after insert on "Client"
referencing new as new_ins
for each row
declare numrows integer;
begin
-- Restrict child "Client" when parent "supplier" insert
if (:new_ins."id_supler" is not null) then
begin
select count(*) into numrows
from "supplier"
where :new_ins."id_supler" = "supplier"."id_supler";
if (numrows = 0) then
RAISE_APPLICATION_ERROR(-20004,'Parent does not exist in parent table supplier. Cannot insert into child table Client.');
end if;
end;
end if;
end;
/
А как сделать стоимость заказа клиента???