我有两个表,我需要编写一个触发过程,如果cluentu.salary> = 0,25 * available_list.price,它将找到所有available_list.id_place。 第一张表:
CREATE TABLE Clientu(
INN VARCHAR(14) NOT NULL PRIMARY KEY CHECK(INN>0) UNIQUE,
town_id CHAR(1) NOT NULL,
street_id CHAR(1) NOT NULL,
flat_id CHAR(2) ,
phone_number CHAR(11) NOT NULL ,
house_id CHAR(3) NOT NULL
salary INT NOT NULL CHECK(salary>0));
第二个:
CREATE TABLE Available_list(
id_list INT NOT NULL PRIMARY KEY CHECK(id_list>0) UNIQUE,
id_place INT NOT NULL REFERENCES Place,
note_list VARCHAR(20) NOT NULL
price INT NOT NULL CHECK(price>0));
我这样做了:
CREATE FUNCTION available_realty() RETURNS trigger AS
$available_realty$
BEGIN
IF clientu.salary >= 0,25 * available_list.price THEN
select id_place from available_list;
END;
RETURN NEW;
END;
$available_realty$ LANGUAGE plpgsql;
CREATE TRIGGER available_realty BEFORE INSERT ON Clientu
FOR EACH ROW EXECUTE PROCEDURE available_realty();
也许最好创建一个存储过程,该存储过程将为客户端找到所有可用的资产,不是吗?请更正我的解决方案。欢迎提出建议。