PostgreSQL允许你修改数据库对象,如表、数据库、模式、组、用户等等。在本教程中,我们将集中讨论如何改变一个表的结构。
基本用法
PostgreSQL的ALTER查询是非常简单的。它遵循下面的简单语法。
ALTER TABLE table_name TASK;
在这种情况下,该操作包括支持的PostgreSQL操作。这些操作包括:
- 增加或删除一个列
- 修改列的数据类型
- 重命名一个表
- 重命名一个列
- 增加列的限制条件
- 设置或删除列的默认值。
- DROP IDENTITY
- 增加表的约束
- 改变约束条件
- 附加分区
- 设置模式
下面是你可以使用ALTER TABLE查询对表进行操作的例子。
添加或删除列
ALTER TABLE命令最常见的使用情况之一是向表添加新的列。
其语法如下。
ALTER TABLE table_name ADD COLUMN column_name data_type constraint;
上面的查询将以指定的列名、数据类型和约束条件向表中添加列。
要删除一个列,可以使用DROP COLUMN查询。
ALTER TABLE table_name DROP COLUMN IF EXISTS column_name;
修改列的数据类型
ALTER TABLE命令的另一个用途是改变一个列的数据类型。这方面的一个查询例子是。
ALTER TABLE table_name ALTER COLUMN column_name TYPE VARCHAR(255);
在上面的例子中,我们使用ALTER命令(TABLE & COLUMN)来改变数据类型为VARCHAR。
重命名一个表
我们还可以使用ALTER TABLE查询来重命名一个表。它的语法是
ALTER TABLE old_table_name RENAME TO new_table_name;
重命名一个列
我们还可以使用ALTER来重命名一个列,查询的表达方式为:
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;
添加/删除列的默认值
要增加或删除一个列的约束,我们可以使用查询。
ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT “value”;
要放弃一个默认值。
ALTER TABLE table_name ALTER COLUMN column_name DROP DEFAULT;
添加表约束
要使用ALTER TABLE命令添加一个表的约束,我们可以这样做。
ALTER TABLE table_name ADD CONSTRAINT constraint_name, constraint_def;
在上面的例子中,我们在ADD约束查询后指定了列名和列定义。
改动约束条件
要改变一个现有的表的约束,我们可以使用查询。
ALTER TABLE table_name ALTER CONSTRAINT constraint_name;
添加检查条件
为了设置一个只接受特定值的列,我们可以设置一个带有目标值的检查条件。
下面是一个查询的例子。
ALTER TABLE table_name ADD CHECK (column_name IN (check_var1, check_var2, check_var3, check_varn));
上述条件确保指定的列只包含指定的值。
设置表的模式
要改变表的模式,请使用查询。
ALTER TABLE current_schema.table_name SET SCHEMA another_schema;
删除非空值约束
你也可以使用查询从一个列中删除非空约束。
ALTER TABLE table_name ALTER COLUMN column_name DROP NOT NULL;
重命名现有的约束条件
你也可以使用ALTER TABLE来重命名一个现有的约束条件。其一般语法是
ALTER TABLE table_name RENAME CONSTRAINT old_constraint_name TO new_constraint_name.
结束
上面的例子显示了如何使用ALTER TABLE命令来改变一个表的结构。尽管我们提供了最常见的操作的语法,但还有更多的操作你可以做。