簡體   English   中英

Postgres 從 NOT NULL 到 NULL 的時間戳列約束

[英]Postgres a timestamp column constraint from NOT NULL to NULL

我正在嘗試運行遷移並基本上將列“修改”而不是 NULL 為 NULL。 就像不需要對其進行限制一樣,我已經運行了 yoyo 遷移並具有以下 output

psycopg2.ProgrammingError: syntax error at or near "timestamp"
LINE 1: ALTER TABLE shop ALTER COLUMN modified timestamp NULL

指向時間戳^

桌子本身看起來

CREATE TABLE shop (
    id SERIAL PRIMARY KEY,
    uuid uuid NOT NULL UNIQUE,
    created timestamp with time zone NOT NULL,
    modified timestamp with time zone NOT NULL,
    deleted timestamp with time zone
);

我嘗試搜索web,並在stackoverflow上找到了一些類似的文章,但沒有幫助,所以希望這里有人可以提供幫助。

編輯:

steps = [
    step("""ALTER TABLE phrases 
    ALTER COLUMN modified TYPE timestamp,
    ALTER column modified SET NULL
;""")
]

在 yoyo 遷移中

在 Postgres 中,您可以使用DROP NOT NULL使列可以為空:

ALTER TABLE shop ALTER column modified DROP NOT NULL;

如果要同時更改數據類型,則:

ALTER TABLE shop 
    ALTER column modified DROP NOT NULL,
    ALTER COLUMN modified TYPE timestamp
;

DB Fiddle 上的演示

暫無
暫無

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

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