Languages
[Edit]
EN

PostgreSQL - Alter Table

0 points
Created by:
Broncono
466

In this article, we would like to show you how to modify a table in PostgreSQL.

Quick solution:

ALTER TABLE "table_name"
ADD "column_name" DATA_TYPE;
ALTER TABLE "table_name"
ALTER COLUMN "column_name" TYPE DATA_TYPE;
ALTER TABLE "table_name"
DROP COLUMN "column_name";

Note:

Go to the official documentation to see what you can use as DATA_TYPE.

Practical examples

To show how the ALTER TABLE statement works, we will use the following table:

PostgreSQL - example data used with ALTER TABLE statement
PostgreSQL - example data used with ALTER TABLE statement

Note:

At the end of this article you can find database preparation SQL queries.

ALTER TABLE - ADD COLUMN

In this example, we will add email column to the users table.

Query:

ALTER TABLE "users"
ADD "email" VARCHAR(255);

Output (SELECT * FROM "users"):

PostgreSQL - ALTER TABLE result in HeidiSQL
PostgreSQL - ALTER TABLE result in HeidiSQL

ALTER TABLE - DROP COLUMN

In this example, we will delete the department_id column.

Query:

ALTER TABLE "users"
DROP COLUMN "department_id";

Output (SELECT * FROM "users"):

PostgreSQL - ALTER TABLE result in HeidiSQL
PostgreSQL - ALTER TABLE result in HeidiSQL

ALTER TABLE - ALTER COLUMN

In this example, we will modify salary column datatype from DECIMAL to VARCHAR.

Query:

ALTER TABLE "users"
ALTER COLUMN "salary" TYPE VARCHAR(255);

Output:

PostgreSQL - ALTER TABLE result in HeidiSQL (before)
PostgreSQL - ALTER TABLE result in HeidiSQL (before)
PostgreSQL - ALTER TABLE result in HeidiSQL (after)
PostgreSQL - ALTER TABLE result in HeidiSQL (after)

 Database preparation

create_tables.sql file:

CREATE TABLE "users" (
	"id" SERIAL,
	"name" VARCHAR(50) NOT NULL,
	"surname" VARCHAR(50) NOT NULL,
	"department_id" INTEGER,
    "salary" DECIMAL(15,2) NOT NULL,
	PRIMARY KEY ("id")
);

insert_data.sql file:

INSERT INTO "users"
	( "name", "surname", "department_id", "salary")
VALUES
	('John', 'Stewart', 1, '3512.00'),
	('Chris', 'Brown', 2, '1344.00'),
	('Kate', 'Lewis', 3, '6574.00'),
	('Ailisa', 'Gomez', NULL, '6500.00'),
	('Gwendolyn', 'James', 2, '4200.00'),
	('Simon', 'Collins', 4, '3320.00'),
	('Taylor', 'Martin', 2, '1500.00'),
	('Andrew', 'Thompson', NULL, '2100.00');
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.

Cross technology - Alter Table

Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join