Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize | PHPize | SQLtest

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

A A A
Login    Share code      Blog   FAQ
Copy Format Clear
CREATE TABLE kassiri( id SERIAL PRIMARY KEY, fio_kassira VARCHAR(50) NOT NULL, age INT NOT NULL, job varchar(50) NOT NULL ); CREATE TABLE cheki( id SERIAL PRIMARY KEY, kas_id int, number_chek SERIAL, date_create TIMESTAMP(0) DEFAULT NOW(), FOREIGN KEY (kas_id) REFERENCES kassiri(id) ON DELETE CASCADE ); INSERT INTO kassiri(fio_kassira, age, job) VALUES ('Романов', 44, 'Кассир'), ('Грачёв', 19, 'Кассир'), ('Иванов', 53, 'Главный кассир'); INSERT INTO cheki(kas_id) SELECT id FROM kassiri ORDER BY RANDOM() LIMIT 1; INSERT INTO cheki(kas_id) SELECT id FROM kassiri ORDER BY RANDOM() LIMIT 1; CREATE OR REPLACE VIEW my_view AS SELECT ch.number_chek, ch.id, ch.kas_id, k.fio_kassira, k.age, k.job, ch.date_create FROM cheki ch JOIN kassiri k ON ch.kas_id = k.id ORDER BY ch.number_chek; SELECT*FROM my_view; CREATE OR REPLACE PROCEDURE Update_my_view(_fio_kassira VARCHAR(50), _job VARCHAR(50)) LANGUAGE plpgsql AS $$ DECLARE _kas_id INT; BEGIN SELECT id INTO _kas_id FROM kassiri WHERE fio_kassira = _fio_kassira and job = _job LIMIT 1; UPDATE my_view SET kas_id = _kas_id ; IF (_kas_id IS NULL) THEN RAISE EXCEPTION 'Кассира не существует'; END IF; END; $$; CREATE OR REPLACE FUNCTION insert_row_view() RETURNS trigger AS $$ BEGIN INSERT INTO cheki(kas_id) VALUES (NEW.kas_id); RETURN NEW; END; $$ LANGUAGE 'plpgsql'; CREATE TRIGGER insert_view INSTEAD OF UPDATE ON my_view FOR EACH ROW EXECUTE PROCEDURE insert_row_view(); SELECT * FROM my_view; CALL Update_my_view('Романов', 'Кассир'); SELECT * FROM my_view;

Stuck with a problem? Got Error? Ask AI support!

Copy Clear