如何在PostgreSQL中创建触发过程?

时间:2019-05-28 17:00:55

标签: postgresql

我有两个表,我需要编写一个触发过程,如果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();

也许最好创建一个存储过程,该存储过程将为客户端找到所有可用的资产,不是吗?请更正我的解决方案。欢迎提出建议。

0 个答案:

没有答案