如何將“800”(字串)轉換為 800(整數)
我用過
ALTER COLUMN token TYPE varchar('800'::integer)
或者
ALTER COLUMN token TYPE varchar(CAST('800' as integer))
但仍然無法正常作業
請幫忙,謝謝
uj5u.com熱心網友回復:
基于以下幾點建議:
create table t (fld_1 varchar);
\d t
Table "public.t"
Column | Type | Collation | Nullable | Default
-------- ------------------- ----------- ---------- ---------
fld_1 | character varying | | |
在psql:
\set type_length '10'
alter table t alter COLUMN fld_1 type varchar(:type_length);
ALTER TABLE
\d t
Table "public.t"
Column | Type | Collation | Nullable | Default
-------- ----------------------- ----------- ---------- ---------
fld_1 | character varying(10) | | |
使用plpgsql:
CREATE OR REPLACE FUNCTION public.type_change(type_length character varying)
RETURNS void
LANGUAGE plpgsql
AS $function$
BEGIN
execute format('alter table t alter COLUMN fld_1 type varchar(%s)', type_length);
RETURN;
END;
$function$
select type_change('50');
type_change
-------------
\d t
Table "public.t"
Column | Type | Collation | Nullable | Default
-------- ----------------------- ----------- ---------- ---------
fld_1 | character varying(50) | | |
您可以擴展上述內容以獲取表名和列名以使其更通用。
當然,另一種選擇是使用您用來與資料庫互動的任何客戶端/語言動態構建查詢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/483446.html
標籤:sql PostgreSQL
