PostgreSQL – 更改触发器
在 PostgreSQL 中,要修改触发器,请使用ALTER TRIGGER语句。该语句是 SQL 标准的 PostgreSQL 扩展。 ALTER TRIGGER语句的语法如下:
Syntax:
ALTER TRIGGER trigger_name ON table_name
RENAME TO new_name;
我们来分析一下上面的语法:
- 首先,指定与要更改的特定表关联的触发器的名称。
- 其次,将新的触发器名称放在RENAME TO子句中。
例子:
首先,我们使用以下语句创建一个员工表进行演示:
CREATE TABLE staff(
user_id serial PRIMARY KEY,
username VARCHAR (50) UNIQUE NOT NULL,
password VARCHAR (50) NOT NULL,
email VARCHAR (355) UNIQUE NOT NULL,
created_on TIMESTAMP NOT NULL,
last_login TIMESTAMP
);
其次,创建一个验证员工用户名的函数。工作人员的用户名不能为空,长度至少为8。
CREATE FUNCTION check_staff_user()
RETURNS TRIGGER
AS $$
BEGIN
IF length(NEW.username) < 8 OR NEW.username IS NULL THEN
RAISE EXCEPTION 'The username cannot be less than 8 characters';
END IF;
IF NEW.NAME IS NULL THEN
RAISE EXCEPTION 'Username cannot be NULL';
END IF;
RETURN NEW;
END;
$$
LANGUAGE plpgsql;
第三,在人员表上创建一个新触发器来检查人员的用户名。每当您在人员表中插入或更新行时,都会触发此触发器。
CREATE TRIGGER username_check
BEFORE INSERT OR UPDATE
ON staff
FOR EACH ROW
EXECUTE PROCEDURE check_staff_user();
现在要修改上面创建的触发器,请使用以下语句:
ALTER TRIGGER username_check ON staff
RENAME TO check_username;
输出: