在Debian下设置PostgreSQL触发器,你需要遵循以下步骤:
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
psql命令行工具连接到PostgreSQL数据库。输入以下命令,然后输入密码:sudo -u postgres psql
employees表的salary列上发生更新时,它会将更新的记录插入到salary_history表中。首先,创建一个新的表来存储工资历史记录:
CREATE TABLE salary_history (
id SERIAL PRIMARY KEY,
employee_id INT NOT NULL,
old_salary NUMERIC(10, 2),
new_salary NUMERIC(10, 2),
changed_by VARCHAR(50),
change_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
接下来,创建一个触发器函数:
CREATE OR REPLACE FUNCTION log_salary_change()
RETURNS TRIGGER AS $$
BEGIN
IF TG_OP = 'UPDATE' AND OLD.salary <> NEW.salary THEN
INSERT INTO salary_history (employee_id, old_salary, new_salary, changed_by)
VALUES (OLD.id, OLD.salary, NEW.salary, session_user);
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
employees表上的salary列相关联,并使用刚刚创建的触发器函数。CREATE TRIGGER trigger_log_salary_change
BEFORE UPDATE ON employees
FOR EACH ROW
EXECUTE FUNCTION log_salary_change();
现在,每当employees表中的salary列发生更新时,触发器都会自动将更改记录到salary_history表中。
employees表中的salary列:UPDATE employees SET salary = salary * 1.1 WHERE id = 1;
然后检查salary_history表以查看是否已记录更改:
SELECT * FROM salary_history;
这就是在Debian下设置PostgreSQL触发器的过程。根据你的需求,你可以创建更复杂的触发器函数和触发器。