Подскажите пожалуйста, в чем ошибка:
База данных Interbase (6.0), 2 таблицы:
CREATE TABLE "CASE"
( "CASEID" INTEGER NOT NULL,
"CBUYERSID" INTEGER NOT NULL,
"CGOODSID" INTEGER NOT NULL,
"CGNAME" VARCHAR(15) CHARACTER SET WIN1251,
"CGPRICE" INTEGER,
"CKOLVO" INTEGER,
"CPRICE" INTEGER,
PRIMARY KEY ("CASEID")); |
CREATE TABLE "GOODS"
( "GOODSID" INTEGER NOT NULL,
"GNAME" VARCHAR(15) CHARACTER SET WIN1251,
"GSERN" VARCHAR(10) CHARACTER SET WIN1251,
"GKOLVO" INTEGER,
"GPRICE" INTEGER,
PRIMARY KEY ("GOODSID")); |
При изменении "CKOLVO" в таблице "Case" должна менятся колонка "CPRICE" и "GKOLVO" (таблицы Goods), но что-то не получается создать триггер, выскакивает ошибка "Dynamic SQL Error SQL error code = -206 Column unknown"
set term !! ;
CREATE TRIGGER updCase for Case
active before update Position 2
as
Declare variable DifKol integer;
Declare variable tGKolvo integer;
/*Declare variable tCGoodsID integer;*/
begin
DifKol = new.CKolvo - old.CKolvo;
/* tCGoodsID = CGoodsID;*/
Select GKolvo from Goods, Case where GoodsID=/*:t*/CGoodsID into :tGKolvo;
If (DifKol <> 0) then
If ((tGKolvo + DifKol)>=0) then
begin
CPrice = new.CKolvo * CGPrice;
Update Goods set GKolvo = (GKolvo + :DifKol);
end else Exception Nehvatka;
end !!
set term ; !! |