Languages
[Edit]
EN

PostgreSQL - Alter Table

0 points
Created by:
Dirask JS Member
3460

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');

PostgreSQL

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