Please note, this is a STATIC archive of website www.w3resource.com from 19 Jul 2022, cach3.com does not collect or store any user information, there is no "phishing" involved.
w3resource

PostgreSQL Create Table: Create a table to restrict the value of a column within some specified values


7. Write a SQL statement to create a table named countries, including country_id, country_name and region_id and make sure that no countries except Italy, India and China will be entered in the table.

Sample Solution:

Code:

CREATE TABLE IF NOT EXISTS countries ( 
COUNTRY_ID varchar(2),
COUNTRY_NAME varchar(40)
CHECK(COUNTRY_NAME IN('Italy','India','China')) ,
REGION_ID decimal(10,0)
);

Output:

postgres=# CREATE TABLE IF NOT EXISTS countries (
postgres(# COUNTRY_ID varchar(2),
postgres(# COUNTRY_NAME varchar(40)
postgres(# CHECK(COUNTRY_NAME IN('Italy','India','China')),
postgres(# REGION_ID decimal(10,0)
postgres(# );
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)  |
 country_name | character varying(40) |
 region_id    | numeric(10,0)         |
Check constraints:
    "countries_country_name_check" CHECK (country_name::text = 
	ANY (ARRAY['Italy'::character varying, 'India'::character varying, 
	'China'::character varying]::text[]))

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

Previous: Write a SQL statement to create a table named jobs, including job_id, job_title, min_salary, max_salary and check whether the max_salary amount exceeding the upper limit 25000.
Next: Write a SQL statement to create a table named countries, including country_id, country_name and region_id and make sure that no duplicate data against column country_id will be allowed at the time of insertion.

What is the difficulty level of this exercise?