w3resource

PostgreSQL Insert Record: Insert rows to ensure that a default value will be inserted in a specific column if no values assigned for that


10. Write a SQL statement to insert records into the table countries to ensure that the country_id column will not contain any duplicate data and this will be automatically incremented and the column country_name will be filled up by 'N/A' if no value assigned to that column.

Sample Solution:

Code:

Here is the code to create a sample table countries:

CREATE TABLE countries ( 
COUNTRY_ID SERIAL PRIMARY KEY,
COUNTRY_NAME varchar(40) NOT NULL DEFAULT 'N/A',
REGION_ID integer NOT NULL
);

Now insert one record into the table:

INSERT INTO countries VALUES(501,'India',102);

Here is the command to see the list of inserting rows :

postgres=# SELECT * FROM countries;
 country_id | country_name | region_id
------------+--------------+-----------
        501 | India        |       102
(1 row)

Now insert another two records into the table :

INSERT INTO countries(region_id) VALUES(109);
INSERT INTO countries(country_name,region_id) VALUES('Australia',121);

Now see the value of the key field incremented automatically:

postgres=# SELECT * FROM countries;
 country_id | country_name | region_id
------------+--------------+-----------
        501 | India        |       102
          1 | N/A          |       109
          2 | Australia    |       121
(3 rows)

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