刪除函數(shù):
語法:
DROP FUNCTION IF EXISTS your_schema_name.function_name(arg_type1, arg_type2) CASCADE RESTRICT;實(shí)例:
DROP FUNCTION IF EXISTS platformyw.boolean_to_smallint(bool) CASCADE RESTRICT;
查詢是否存在函數(shù)
語法:
SELECT * FROM information_schema.routines WHERE routine_catalog={you_catalog_name} and routine_schema={you_schema_name} and routine_name ={you_func_name} and routine_type = 'FUNCTION';實(shí)例:
SELECT * FROM information_schema.routines WHERE routine_catalog='gisqdb' and routine_schema='platform'
and routine_name ='boolean_to_smallint' ?and routine_type = 'FUNCTION';
?創(chuàng)建轉(zhuǎn)化函數(shù)
CREATE OR REPLACE FUNCTION boolean_to_smallint(b boolean) RETURNS smallint AS $$
? ? BEGIN
? ? ? ? ? ? RETURN (b::boolean)::bool::int;
? ? END;
$$LANGUAGE plpgsql;
drop cast if exists (boolean as smallint);
創(chuàng)建一個(gè)全局類型轉(zhuǎn)化
具體地說,如果布爾值為?TRUE
,則轉(zhuǎn)換為?1
;如果布爾值為?FALSE
,則轉(zhuǎn)換為?0
。
例如,CAST (TRUE AS smallint)
?將返回?1
,CAST (FALSE AS smallint)
?將返回?0
。
語法:
CREATE CAST (source_type AS target_type) WITH FUNCTION function_name(argument_type) [ AS ASSIGNMENT | AS IMPLICIT ];其中:
source_type 是要轉(zhuǎn)換的源類型,target_type 是要轉(zhuǎn)換的目標(biāo)類型,function_name 是執(zhí)行轉(zhuǎn)換的函數(shù),argument_type 是函數(shù)的參數(shù)類型。AS ASSIGNMENT 和 AS IMPLICIT 用于指定轉(zhuǎn)換類型的方式。AS ASSIGNMENT 表示將轉(zhuǎn)換定義為顯式轉(zhuǎn)換,需要顯式地使用 CAST 運(yùn)算符進(jìn)行轉(zhuǎn)換;AS IMPLICIT 表示將轉(zhuǎn)換定義為隱式轉(zhuǎn)換,可以在不使用 CAST 運(yùn)算符的情況下自動(dòng)進(jìn)行轉(zhuǎn)換實(shí)例:
CREATE CAST (boolean AS smallint) WITH FUNCTION boolean_to_smallint(boolean) AS implicit;
查詢轉(zhuǎn)化是否存在
布爾值為?TRUE
,則轉(zhuǎn)換為?1
;如果布爾值為?FALSE
,則轉(zhuǎn)換為?0
SELECT 1 ? ?FROM pg_cast c ?JOIN pg_type t1 ON c.castsource = t1.oid ?JOIN pg_type t2 ON c.casttarget = t2.oid
WHERE t1.typname = 'boolean' ? ?AND t2.typname = 'smallint';?
刪除轉(zhuǎn)化
drop cast if exists (boolean as smallint);?文章來源:http://www.zghlxwxcb.cn/news/detail-428943.html
查詢pg版本號(hào)
select version();?文章來源地址http://www.zghlxwxcb.cn/news/detail-428943.html
到了這里,關(guān)于PG數(shù)據(jù)庫實(shí)現(xiàn)bool自動(dòng)轉(zhuǎn)smallint的方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!