使用sql更改类的类型
使用ALTER TABLE ALTER COLUMN
语句更改列的数据类型。在 ALTER TABLE 之后,指定要修改列的表的名称,然后在 ALTER COLUMN 之后,指定要更改数据类型的列的名称。
在 TYPE 关键字之后,指定列的新数据类型。
语法如下:
ALTER TABLE [schema_name.]table_name
ALTER COLUMN <column_name> [SET DATA] TYPE <new_data_type>,
ALTER COLUMN <column_name> [SET DATA] TYPE <new_data_type>
...;
PostgreSQL 允许通过使用一个带有多个 ALTER COLUMN 子句的 ALTER TABLE 语句来更改多个列的数据类型。
它需要在每个 ALTER COLUMN 子句后添加逗号 ,
。
假设您已经有以下 employee
表。
现在将email的数据类型从 VARCHAR
更改为 TEXT
。
ALTER TABLE employee
ALTER COLUMN email TYPE TEXT;
当您执行 ALTER COLUM 时,PostgreSQL 会隐式地将数据从旧数据类型自动转换为新数据类型。在某些情况下,例如将 VARCHAR
转换为 INT
,转换失败,PostgreSQL 将给出错误,指出列无法自动转换,并要求您通过指定 USING
子句来指定手动转换。
ALTER TABLE <table_name>
ALTER COLUMN <column_name> TYPE <new_data_type> USING <expression>;
以下代码将 salary
列的数据类型从 integer
更改为 INT
。
ALTER TABLE employee
ALTER COLUMN salary TYPE integer USING salary::INT;
使用 pgAdmin 更改列类型
您可以通过右键单击表名并选择"Properties"来更改 pgAdmin 中一个或多个列的名称、类型和 NOT NULL 约束。 在弹出窗口中,转到"Columns"选项卡,您可以通过单击列上的编辑图标来编辑列名称、类型、长度以及设置/取消设置 NOT NULL 约束,如下所示。
或者,您也可以通过右键单击列并在上下文菜单中选择"Properties"来更改 pgAdmin 中列的类型。 这将打开一个弹出窗口,您可以在其中编辑列属性。
转到"Definition"选项卡,然后从Datatype下拉列表中选择适当的类型来编辑类型,如下所示。
单击"保存"按钮保存更改。