PostgreSQL ALTER TABLE中改變資料類型時USING的用法<轉>

來源:互聯網
上載者:User

標籤:ber   轉換   資料類型   varchar   需要   view   convert   for   sim   

在修改表欄位類型的時候使用Using來進行顯示的轉換類型。

原文說明:

SET DATA TYPE 
  This form changes the type of a column of a table. Indexes and simple table constraints involving the column willbe automatically converted to use the new column type by reparsing the originally supplied expression. The optional COLLATE clause specifies a collation for the new column; if omitted, the collation is the default for the new column type. The optional USING clause specifies how to compute the new column value from the old; if omitted, the default conversion is the same as an assignment cast from old data type to new. A USING clause must be provided if there is no implicit or assignment cast from old to new type.

  大致意思是:轉換類型的時候有隱含類型轉換的時候,會自動轉換,如果沒有,那麼就必須使用using指定一下轉換規則。

1. 建表

create table 101(id integer);

2. 插入資料

insert into tb10 select generate_series(1,5);

3. 把id的int變為varchar

postgres=# alter table tb101 alter id type varchar;ALTER TABLE

 

因為int轉varchar有隱式的轉換,故可以自動轉換過去。

postgres=# \d tb101          Table "public.tb101" Column |       Type        | Modifiers --------+-------------------+----------- id     | character varying |

 

 

4. 把id的varchar變為int

postgres=# alter table tb101 alter id type int;ERROR:  column "id" cannot be cast automatically to type integerHINT:  Specify a USING expression to perform the conversion.

 

在沒有隱式的轉換下,就需要指定Using來顯示的轉換。

5. 使用Using進行類型轉換

postgres=# alter table tb101 alter id type int using id::int;ALTER TABLEpostgres=# \d tb101     Table "public.tb101" Column |  Type   | Modifiers --------+---------+----------- id     | integer | 

id::int 也可以使用cast(id as int)

 

PostgreSQL ALTER TABLE中改變資料類型時USING的用法<轉>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.