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;
输出: