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.
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) );
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.
What is the difficulty level of this exercise?