Languages
[Edit]
EN

PostgreSQL - add index to existing table

0 points
Created by:
Dirask Admin - MR
1340

In this article, we would like to show you how to add index to an existing table in PostgreSQL.

Quick solution:

CREATE INDEX "index_name"
ON "table_name" ("column1", "column2", "columnN");

or

ALTER TABLE "table_name" 
ADD INDEX "index_name" ("column2", "column2", "columnN");

Practical example

To show how to add index to existing table, we will use the following table:

PostgreSQL - example data used to add index to existing table
PostgreSQL - example data used to add index to existing table

Note:

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

Example 1 - one column index

In this example, we will create an index for the salary column in users table.

Query:

CREATE INDEX "salary_index"
ON "users" ("salary");

Result:

1. Using query

SHOW INDEX FROM "users" FROM "dirask";    -- where users-table_name, dirask-database_name
PostgreSQL - add index to existing table - result using query
PostgreSQL - add index to existing table - result using query

2. Using HeidiSQL

PostgreSQL - add index to existing table - result using HeidiSQL
PostgreSQL - add index to existing table - result using HeidiSQL

Example 2 - two column index

In this example, we will create an index on the name and surname columns in users table.

Query:

CREATE INDEX "full_name_index"
ON "users" ("name", "surname");

Result:

1. Using query

SHOW INDEX FROM "users" FROM "dirask";    -- where users-table_name, dirask-database_name
PostgreSQL - add index to existing table - result
PostgreSQL - add index to existing table - result using query

2. Using HeidiSQL

PostgreSQL - add index to existing table - result
PostgreSQL - add index to existing table - result using HeidiSQL

Example 3 - using ALTER TABLE

In this example, we will create an index on two columns using ALTER TABLE statement.

Query:

ALTER TABLE "users" 
ADD INDEX "index_full_name" ("name", "surname");

Result:

1. Using query

SHOW INDEX FROM "users" FROM "dirask";    -- where users-table_name, dirask-database_name
PostgreSQL - add index to existing table - result
PostgreSQL - add index to existing table - result using query

2. Using HeidiSQL

PostgreSQL - add index to existing table - result
PostgreSQL - add index to existing table - result using HeidiSQL

Database preparation

create_tables.sql file:

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

insert_data.sql file:

INSERT INTO "users"
	( "name", "surname", "salary")
VALUES
	('John', 'Stewart', '3512.00'),
	('Chris', 'Brown', '1344.00'),
	('Kate', 'Lewis', '6574.00'),
	('Ailisa', 'Gomez', '6500.00'),
	('Gwendolyn', 'James', '4200.00'),
	('Simon', 'Collins', '3320.00'),
	('Taylor', 'Martin', '1500.00'),
	('Andrew', 'Thompson', '2100.00');

PostgreSQL - indexes

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