DROP CAST
功能描述
删除一个类型转换。
注意事项
- 要能删除一个类型转换,用户必须拥有源或者目的数据类型。这是和创建一个类型转换相同的权限。
- 用户无法删除系统自带的转换,因为这是数据库系统所必需的。
语法格式
DROP CAST [ IF EXISTS ] (source_type AS target_type) [ CASCADE | RESTRICT ]
参数说明
IF EXISTS
如果指定的转换不存在,那么发出一个 notice 而不是抛出一个错误。
source_type
类型转换里的源数据类型。
target_type
类型转换里的目标数据类型。
CASCADE
RESTRICT
这些键字没有任何效果,因为在类型转换上没有依赖关系。
示例
1、创建用于执行该转换的函数。
CREATE OR REPLACE FUNCTION _time_to_integer(time with time zone)
RETURNS integer AS $$
SELECT
EXTRACT(HOUR FROM $1)::integer * 10000
+ EXTRACT(MINUTE FROM $1)::integer * 100
+ EXTRACT(SECONDS FROM $1)::integer
$$ IMMUTABLE STRICT LANGUAGE SQL;
2、创建类型转换。
CREATE CAST (time with time zone AS integer)
WITH FUNCTION _time_to_integer (time with time zone)
AS IMPLICIT;
3、删除类型转换。
DROP CAST IF EXISTS (time with time zone AS integer);
兼容性
DROP CAST遵循 SQL 标准。