60 lines
1.6 KiB
SQL
60 lines
1.6 KiB
SQL
DO
|
|
$$
|
|
BEGIN
|
|
IF NOT EXISTS (SELECT FROM pg_database WHERE datname = 'db.ProximaContracts') THEN
|
|
CREATE DATABASE "db.ProximaContracts";
|
|
END IF;
|
|
END
|
|
$$;
|
|
|
|
\c "db.ProximaContracts";
|
|
|
|
CREATE TABLE IF NOT EXISTS public.Rates (
|
|
Id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
Name VARCHAR(100) NOT NULL,
|
|
Price MONEY NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.Contracts (
|
|
Id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
|
|
ContractorIdNumber VARCHAR(20) NOT NULL,
|
|
ContractorName VARCHAR(50) NOT NULL,
|
|
ContractorSurname VARCHAR(100) NOT NULL,
|
|
ContractInitDate TIMESTAMP NOT NULL,
|
|
RateId INTEGER NOT NULL,
|
|
CONSTRAINT fk_contracts_rates
|
|
FOREIGN KEY (RateId)
|
|
REFERENCES public.Rates (Id)
|
|
ON UPDATE CASCADE
|
|
ON DELETE RESTRICT
|
|
);
|
|
|
|
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_contracts_rateid
|
|
ON public.Contracts (RateId);
|
|
|
|
|
|
INSERT INTO public.Rates
|
|
(Name, Price)
|
|
VALUES
|
|
('Basic', 0.10),
|
|
('Economy', 0.12),
|
|
('Standard', 0.15),
|
|
('Premium', 0.20),
|
|
('Ultra', 0.25);
|
|
|
|
|
|
|
|
INSERT INTO public.Contracts
|
|
(ContractorIdNumber,
|
|
ContractorName,
|
|
ContractorSurname,
|
|
ContractInitDate,
|
|
RateId)
|
|
VALUES
|
|
('A12345678', 'John', 'Smith', '2025-01-15 10:00:00', 1),
|
|
('B23456789', 'Emily', 'Johnson', '2025-02-20 11:30:00', 2),
|
|
('C34567890', 'Carlos', 'García', '2025-03-05 09:00:00', 3),
|
|
('D45678901', 'Sofía', 'Martínez', '2025-04-12 14:45:00', 4),
|
|
('E56789012', 'Liam', 'Brown', '2025-05-01 08:20:00', 5); |