我不喜欢不知道这一点,因为我可能需要使用一个而不是另一个.在大多数情况下,它们似乎产生了相同的结果,但我猜测它们有微妙的差别,可能与NULL值有关,或者像PHP那样执行严格的比较,例如extra =.
谢谢
请执行以下查询:
CREATE TEMP TABLE users
(
user_id SERIAL,
name varchar(50)
);
CREATE TEMP TABLE admins
(
section integer
) INHERITS(users);
INSERT INTO users (name) VALUES ('Kevin');
INSERT INTO admins (name, section) VALUES ('John', 1);
CREATE FUNCTION pg_temp.is_admin(INTEGER) RETURNS BOOLEAN AS
$$
DECLARE
result boolean;
BEGIN
SELECT INTO result COUNT(*) > 0
FROM admins
WHERE user_id = $1;
RETURN result;
END;
$$
LANGUAGE PLPGSQL;
SELECT name, pg_temp.is_admin(user_id) FROM users;
Run Code Online (Sandbox Code Playgroud)
是否有任何postgres功能可以让我摆脱is_admin函数?基本上检查行类类型(在继承方面)?
我理解桌面设计不理想,这只是提供一个简单的例子,所以我可以找出我所追求的是否可能.
postgresql ×2