w3resource

PostgreSQL Create Table: Create a table to allow any two of the column combination to contain unique values


12. Write a SQL statement to create a table countries, including country_id, country_name and region_id and make sure that the combination of columns country_id and region_id will be unique.

Sample Solution:

Code:

CREATE TABLE IF NOT EXISTS countries_n (
COUNTRY_ID varchar(2) NOT NULL UNIQUE DEFAULT '',
COUNTRY_NAME varchar(40) DEFAULT NULL,
REGION_ID decimal(10,0) NOT NULL,
PRIMARY KEY (COUNTRY_ID,REGION_ID));

Output:

postgres=# CREATE TABLE IF NOT EXISTS countries (
postgres(# COUNTRY_ID varchar(2) NOT NULL UNIQUE DEFAULT '',
postgres(# COUNTRY_NAME varchar(40) DEFAULT NULL,
postgres(# REGION_ID decimal(10,0) NOT NULL,
postgres(# PRIMARY KEY (COUNTRY_ID,REGION_ID));
CREATE TABLE

Here is the command to see the structure of the created table :

postgres=# \d countries
                          Table "public.countries"
    Column    |         Type          |               Modifiers
--------------+-----------------------+----------------------------------------
 country_id   | character varying(2)  | not null default ''::character varying
 country_name | character varying(40) | default NULL::character varying
 region_id    | numeric(10,0)         | not null
Indexes:
    "countries_pkey" PRIMARY KEY, btree (country_id, region_id)
    "countries_country_id_key" UNIQUE CONSTRAINT, btree (country_id)

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?



New Content: Composer: Dependency manager for PHP, R Programming