gpt4 book ai didi

postgresql - 如何创建条件和选择?

转载 作者:行者123 更新时间:2023-11-29 13:10:52 25 4
gpt4 key购买 nike

我想做这样的事情:

有人创建了一个客户,如果 ct 已经存在,那么我们检查 cn 是否相同,如果不相同,我们会抛出一个错误,但它不起作用并且会花费很多时间。

CREATE OR REPLACE FUNCTION existingCT()

RETURNS trigger AS $$ BEGIN

IF ((SELECT COUNT(*) FROM customer WHERE ct= NEW.ct)!= 0) THEN 

IF( (SELECT COUNT(*) FROM customer WHERE ct= NEW.ct) != (SELECT count(*) FROM customer WHERE ct= NEW.ct AND cn= NEW.cn)) THEN

RAISE EXCEPTION 'This ct already exist for a cn';

END IF;

END IF;

RETURN NEW;

END;

$$ LANGUAGE plpgsql ;

最佳答案

您可以在一次查询中查找具有相同 ct 和不同 cn 的客户:

IF EXISTS (SELECT * FROM customer WHERE ct = NEW.ct AND cn <> NEW.cn) THEN

对于任何类型的触发器,抛出的异常都应该中止 INSERT。但考虑到这是一张支票,我会将触发器创建为 BEFORE INSERT

关于postgresql - 如何创建条件和选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54886797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com