簡體   English   中英

如何在PostgreSQL中修改列類型並設置其默認值和當前值

[英]how-to modify a column type and set its default and current value in postgresql

我想從

CREATE TABLE IF NOT EXISTS scheme.xxx (
    id SERIAL PRIMARY KEY,

CREATE TABLE IF NOT EXISTS scheme.xxx (
    id UUID DEFAULT uuid_generate_v4(),

在具有記錄的現有表中,但是我無法實現它。

一個不起作用的示例是:

ALTER TABLE scheme.xxx
    ALTER COLUMN id TYPE UUID SET DEFAULT uuid_generate_v4()
        USING id::uuid_generate_v4() ;

您必須先刪除默認值,然后更改類型,然后添加新的默認值。

但首先要找出順序:

SELECT pg_get_serial_sequence('scheme.xxx', 'id');

 pg_get_serial_sequence 
------------------------
 scheme.xxx_id_seq
(1 row)

現在做:

ALTER TABLE scheme.xxx
   ALTER id DROP DEFAULT,
   ALTER id TYPE uuid USING uuid_generate_v4(),
   ALTER id SET DEFAULT uuid_generate_v4();

一站式聲明!

現在擺脫序列:

DROP SEQUENCE public.xxx_id_seq;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM