Skip to main content
Documents
Basic SyntaxMath FunctionsDate FunctionsJSON FunctionsDatabasesTables & Schema ManagementString FunctionsTriggersIndexes

PostgreSQL ADD COLUMN

PostgreSQL Tables & Schema Management involves operations to organize and modify database structures, such as tables and schemas. It is essential for maintaining and evolving the database structure to accommodate changing data requirements.

Usage

Tables & Schema Management is used to create, modify, and delete tables and schemas, ensuring the database structure aligns with application needs. The `ADD COLUMN` operation is a common modification used to introduce new data fields into existing tables.

ALTER TABLE table_name
ADD COLUMN column_name data_type [constraints];

In this syntax, `ALTER TABLE` changes the existing table structure, and `ADD COLUMN` introduces a new column with the specified data type and optional constraints.

Examples

1. Adding a Simple Column

ALTER TABLE employees
ADD COLUMN birth_date DATE;

This command adds a new column `birth_date` of type `DATE` to the `employees` table.

2. Adding a Column with Default Value

ALTER TABLE products
ADD COLUMN is_active BOOLEAN DEFAULT TRUE;

Here, a `BOOLEAN` column `is_active` is added to the `products` table, with a default value of `TRUE`.

3. Adding a Column with a Not Null Constraint

ALTER TABLE orders
ADD COLUMN order_status VARCHAR(20) NOT NULL;

This example adds an `order_status` column of type `VARCHAR(20)` to the `orders` table, ensuring it cannot contain `NULL` values.

Schema Management

In PostgreSQL, a schema is a collection of database objects, such as tables, views, and functions, which provides a way to organize these objects into logical groups. Here's how you can manage schemas:

Creating a Schema

CREATE SCHEMA schema_name;

This command creates a new schema with the specified name.

Renaming a Schema

ALTER SCHEMA old_schema_name
RENAME TO new_schema_name;

This command renames an existing schema.

Dropping a Schema

DROP SCHEMA schema_name [CASCADE];

Use this command to delete a schema. The `CASCADE` option can be used to automatically drop all objects within the schema.

Tips and Best Practices

  • Backup before altering. Always back up your data before making structural changes to avoid accidental data loss.
  • Consider constraints. When adding columns, consider necessary constraints like `NOT NULL` or `UNIQUE` to maintain data integrity.
  • Assess performance impact. Evaluate the performance implications of adding a new column, especially in large tables. Altering large tables can lock the table and affect performance; consider using background jobs or scheduling changes during maintenance windows.
  • Use default values wisely. Set default values for new columns to prevent errors in existing records where the column is not explicitly set.

Additional Operations

Removing a Column

ALTER TABLE table_name
DROP COLUMN column_name;

This command removes a column from an existing table.

Dropping a Table

DROP TABLE table_name [CASCADE];

Use this command to delete a table. The `CASCADE` option will drop any objects that depend on the table.