📜  PostgreSQL – 更改列类型

📅  最后修改于: 2022-05-13 01:57:14.848000             🧑  作者: Mango

PostgreSQL – 更改列类型

在本文中,我们将讨论在 PostgreSQL 中使用 ALTER TABLE 语句更改列的数据类型的分步过程。

Syntax:
ALTER TABLE table_name
ALTER COLUMN column_name [SET DATA] TYPE new_data_type;

我们来分析一下上面的语法:

  • 首先,在 ALTER TABLE 子句中指定要更改的列所属的表的名称。
  • 其次,在 ALTER COLUMN 子句中给出其数据类型将被更改的列的名称。
  • 第三,为 TYPE 关键字后的列提供新的数据类型。可以使用 SET DATA TYPE 或 TYPE。

例子:
让我们创建一个表(比如资产)并使用以下语句在其中插入几行以进行演示:

CREATE TABLE assets (
    id serial PRIMARY KEY,
    name TEXT NOT NULL,
    asset_no VARCHAR NOT NULL,
    description TEXT,
    LOCATION TEXT,
    acquired_date DATE NOT NULL
);

INSERT INTO assets (
    NAME,
    asset_no,
    location,
    acquired_date
)
VALUES
    (
        'Server',
        '10001',
        'Server room',
        '2020-01-01'
    ),
    (
        'UPS',
        '10002',
        'Server room',
        '2020-05-16'
);

现在我们将使用以下语句name列的数据类型更改为 VARCHAR:

ALTER TABLE assets ALTER COLUMN name TYPE VARCHAR;

现在我们使用以下语句将 description 和 location 列的数据类型从 TEXT 更改为 VARCHAR:

ALTER TABLE assets 
    ALTER COLUMN location TYPE VARCHAR,
    ALTER COLUMN description TYPE VARCHAR;

现在我们检查表中使用以下语句所做的更改:

SELECT * FROM assets;

输出: