SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share      Blog   Popular
Copy Format Clear
CREATE TABLE Товары( id SERIAL PRIMARY KEY, Название VARCHAR(50) NOT NULL, Цена INT NOT NULL, Штук_на_складе INT NOT NULL ); CREATE TABLE Купленные_товары( id SERIAL PRIMARY KEY, check_id INT, product_id INT, Количество INT NOT NULL, Цена_товаров INT DEFAULT 0, FOREIGN KEY (check_id) REFERENCES Чеки(id), FOREIGN KEY (product_id) REFERENCES Товары(id) ); INSERT INTO Кассиры(ФИО_кассира, Возраст, Должность) VALUES ('Романов', 44, 'Кассир'), ('Любимова', 25, 'Кассир'), ('Грачёв', 19, 'Кассир'), ('Иванов', 53, 'Главный кассир'); INSERT INTO Чеки(kas_id) SELECT id FROM Кассиры ORDER BY RANDOM() LIMIT 1; INSERT INTO Товары(Название, Цена, Штук_на_складе) VALUES ('Кефир', 55, 10), ('Колбаса', 235, 6), ('Батон', 30, 14), ('Пачка конфет', 90, 25); INSERT INTO Купленные_товары(check_id, product_id, Количество) VALUES (1, 2, 3), (1, 3, 5); UPDATE Купленные_товары SET Цена_товаров = Количество * (SELECT Цена FROM Товары WHERE id = Купленные_товары.product_id) CREATE OR REPLACE FUNCTION dob() RETURNS trigger AS $$ BEGIN UPDATE Товары SET Штук_на_складе = Штук_на_складе - (SELECT Количество FROM Купленные_товары); RETURN NEW; END; $$ LANGUAGE 'plpgsql'; CREATE TRIGGER test_trigger AFTER INSERT ON Купленные_товары FOR EACH ROW EXECUTE PROCEDURE dob(); drop trigger test_trigger ON Купленные_товары; drop FUNCTION dob; INSERT INTO Купленные_товары(check_id, product_id, Количество) Values (1,2,1); SELECT * FROM Купленные_товары; SELECT * FROM Товары
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear