在PostgreSQL中如何改变一个表的结构

220 阅读3分钟

PostgreSQL允许你修改数据库对象,如表、数据库、模式、组、用户等等。在本教程中,我们将集中讨论如何改变一个表的结构。

基本用法

PostgreSQL的ALTER查询是非常简单的。它遵循下面的简单语法。

ALTER TABLE table_name TASK;

在这种情况下,该操作包括支持的PostgreSQL操作。这些操作包括:

  1. 增加或删除一个列
  2. 修改列的数据类型
  3. 重命名一个表
  4. 重命名一个列
  5. 增加列的限制条件
  6. 设置或删除列的默认值。
  7. DROP IDENTITY
  8. 增加表的约束
  9. 改变约束条件
  10. 附加分区
  11. 设置模式

下面是你可以使用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 DEFAULTvalue”;

要放弃一个默认值。

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命令来改变一个表的结构。尽管我们提供了最常见的操作的语法,但还有更多的操作你可以做。