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, Должность varchar(50) NOT NULL ); CREATE TABLE Чеки( id SERIAL PRIMARY KEY, kas_id int, Номер_чека SERIAL, Дата_создания TIMESTAMP(0) DEFAULT NOW(), FOREIGN KEY (kas_id) REFERENCES Кассиры(id) ); 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, 'Кассир'); INSERT INTO Чеки(kas_id) SELECT id FROM Кассиры ORDER BY RANDOM() LIMIT 1; INSERT INTO Товары(Название, Цена, Штук_на_складе) VALUES ('Кефир', 55, 10); CREATE PROCEDURE Insert_Купленные_товары(_Название VARCHAR(50), _Количество INT) LANGUAGE plpgsql AS $$ DECLARE _product_id INT; BEGIN SELECT id INTO _product_id FROM Товары WHERE Название= _Название and Штук_на_складе>=_Количество; IF (_product_id IS NULL) THEN RAISE EXCEPTION 'Товар не существует'; END IF; INSERT INTO Купленные_товары(product_id) VALUES (_product_id); Insert INTO Купленные_товары(check_id) SELECT id FROM Чеки order by id DESC LIMIT 1; UPDATE Купленные_товары SET Цена_товаров = Количество * (SELECT Цена FROM Товары WHERE id = Купленные_товары.product_id); END; $$; select * from Товары
Stuck with a problem? Got Error? Ask ChatGPT!
Copy Clear