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)
);
INSERT INTO Кассиры(ФИО_кассира, Возраст, Должность)
VALUES
('Соловьёв', 34, 'Кассир'), ('Любимова', 25, 'Главный Кассир');
CREATE PROCEDURE Insert_Cheque(cachier VARCHAR(50))
LANGUAGE plpgsql
AS $$
DECLARE cachier_id INT;
BEGIN
SELECT id INTO cachier_id FROM Кассиры WHERE ФИО_кассира = cachier;
IF (cachier_id IS NULL) THEN
RAISE EXCEPTION 'cachier not exists : %', cachier;
END IF;
INSERT INTO Чеки(kas_id) VALUES (cachier_id);
END;
$$;
CALL Insert_Cheque('Соловьёв');
CALL Insert_Cheque('Jameson');
SELECT * FROM Чеки;