PostgreSQL中的bool类型转换为smallint的方法是什么
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"PostgreSQL中的bool类型转换为smallint的方法是什么",在日常操作中,相信很多人在PostgreSQL中的bool类型转换为smallint的方法是什么问题上存在疑
千家信息网最后更新 2026年10月31日PostgreSQL中的bool类型转换为smallint的方法是什么
这篇文章主要介绍"PostgreSQL中的bool类型转换为smallint的方法是什么",在日常操作中,相信很多人在PostgreSQL中的bool类型转换为smallint的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"PostgreSQL中的bool类型转换为smallint的方法是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
转换过程
1.使用psql中的\help alter table命令找到修改列类型的语法:
[local:/data/run/pg12]:5120 pg12@testdb=# \help alter tableCommand: ALTER TABLEDescription: change the definition of a tableSyntax:ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ] action [, ... ]...where action is one of: ADD [ COLUMN ] [ IF NOT EXISTS ] column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ] DROP [ COLUMN ] [ IF EXISTS ] column_name [ RESTRICT | CASCADE ] ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ] ALTER [ COLUMN ] column_name SET DEFAULT expression ALTER [ COLUMN ] column_name DROP DEFAULT ALTER [ COLUMN ] column_name { SET | DROP } NOT NULL ALTER [ COLUMN ] column_name ADD GENERATED { ALWAYS | BY DEFAULT } AS IDENTITY [ ( sequence_options ) ] ALTER [ COLUMN ] column_name { SET GENERATED { ALWAYS | BY DEFAULT } | SET sequence_option | RESTART [ [ WITH ] restart ] } [...] ALTER [ COLUMN ] column_name DROP IDENTITY [ IF EXISTS ] ALTER [ COLUMN ] column_name SET STATISTICS integer ALTER [ COLUMN ] column_name SET ( attribute_option = value [, ... ] ) ALTER [ COLUMN ] column_name RESET ( attribute_option [, ... ] ) ALTER [ COLUMN ] column_name SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }2.执行转换
[local:/data/run/pg12]:5120 pg12@testdb=# drop table t_bool;ERROR: table "t_bool" does not exist[local:/data/run/pg12]:5120 pg12@testdb=# create table t_bool(col bool);CREATE TABLE[local:/data/run/pg12]:5120 pg12@testdb=# alter table t_bool alter column col type smallint;ERROR: column "col" cannot be cast automatically to type smallintHINT: You might need to specify "USING col::smallint".[local:/data/run/pg12]:5120 pg12@testdb=#
提示指定使用"USING col::smallint",翻看PG的语法:
ALTER [ COLUMN ] column_name [ SET DATA ] TYPE data_type [ COLLATE collation ] [ USING expression ]
USING后面跟的是expression表达式,可以理解为如何转换的表达式,因此执行以下语句:
[local:/data/run/pg12]:5120 pg12@testdb=# alter table t_bool alter column col type smallint using col::int::smallint;ALTER TABLE
DONE!成功转换。
实际上,还可以更简化:
[local:/data/run/pg12]:5120 pg12@testdb=# alter table t_bool alter column col type smallint using col::int;ALTER TABLE
因为int到smallint是有转换的,不需要明确的int::smallint,但为了说明转换过程,加上该转换会清晰许多。
附录
测试脚本如下:
drop table t_bool;create table t_bool(col bool);alter table t_bool alter column col type smallint;alter table t_bool alter column col type smallint using col::int::smallint;
到此,关于"PostgreSQL中的bool类型转换为smallint的方法是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
方法
类型
学习
更多
表达式
语法
过程
帮助
实用
成功
接下来
命令
实际
实际上
文章
理论
知识
篇文章
网站
脚本
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
西安纸贵互联网科技有限公司
互联网科技活动banner
中国互联网科技股
科技类互联网
北京互联网科技公司
深圳互联网络科技有限公司
上海挚品互联网科技
齐家互联网科技
互联网科技公司官网
成都互联网科技公司
新浪科技互联网
互联网汽车科技小镇
互联网科技热点资讯
荆州市昕露互联网络科技有限公司
开一家科技互联网公司需要多少钱
阿里互联网科技企业
卓翼科技产业互联网合作
银行科技岗属于互联网吗
全球科技与互联网公司市值变化
张家口科技产业互联网平台
互联网下的科技发展
西安互联网科技
贷财互联网科技
广西互联网科技公司
蓝色互联网科技
山东有哪些互联网科技公司
图游互联网科技
福建互联网展示科技馆设计
前海云享互联网科技
互联网 科技节活动 微视频大赛