SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
DROP TABLE IF EXISTS employee; CREATE TABLE employee ( emp_name text, salary int, update_dt timestamp, update_usr_id text DEFAULT '0' ); insert into employee values ('Петр Болотин', 100000); -- Требуется создать триггер, который при любом добавлении или изменении строки в таблице сохраняет в этой строке -- информацию о текущем пользователе и отметку времени. Кроме того, он требует, чтобы было указано имя сотрудника и -- зарплата задавалась положительным числом. CREATE OR REPLACE FUNCTION update_emp_view() RETURNS TRIGGER AS $$ BEGIN IF NEW.salary <= 0 OR NEW.emp_name IS NULL THEN RETURN NULL; ELSE NEW.update_dt = now(); NEW.update_usr_id = CURRENT_USER; RETURN NEW; END IF; END; $$ LANGUAGE plpgsql; CREATE OR REPLACE TRIGGER emp_audit BEFORE INSERT OR UPDATE ON employee FOR EACH ROW EXECUTE PROCEDURE update_emp_view(); insert into employee values ('Алексей Бердовскийd', 300); select * from employee; insert into employee values ('Ильяd', -1); select * from employee; -- drop trigger emp_audit on employee;
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear