Skip to content

Instantly share code, notes, and snippets.

@kirubakaran
Created September 20, 2023 18:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kirubakaran/930470844e06fbf35f1dda358399ce78 to your computer and use it in GitHub Desktop.
Save kirubakaran/930470844e06fbf35f1dda358399ce78 to your computer and use it in GitHub Desktop.
Example of through table and constraints
CREATE TABLE states (
id INT PRIMARY KEY,
statename VARCHAR(50)
);
CREATE TABLE disclaimers (
id INT PRIMARY KEY,
disclaimertxt VARCHAR(50)
);
CREATE TABLE client (
id INT PRIMARY KEY,
name VARCHAR(50)
);
CREATE TABLE state_disclaimer (
id INT PRIMARY KEY,
client_id int,
states_id int,
disclaimers_id int,
Foreign key (client_id) references client(id),
Foreign key (states_id) references states(id),
Foreign key (disclaimers_id) references disclaimers(id)
);
SELECT client."name", disclaimers.disclaimertxt, states.statename from state_disclaimer sd
join client on sd.client_id = client.id
join states on sd.states_id = states.id
join disclaimers on sd.disclaimers_id = disclaimers.id;
ALTER TABLE disclaimers
ADD CONSTRAINT uc_nodupe_disclaimers UNIQUE (disclaimertxt);
ALTER TABLE state_disclaimer
ADD CONSTRAINT uc_nodupe_disclaimer_state UNIQUE (client_id, states_id, disclaimers_id);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment