微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以在 Postgres 的添加列语句中创建命名的默认约束吗?

如何解决我可以在 Postgres 的添加列语句中创建命名的默认约束吗?

我是 Postgres 的新手,想知道是否可以在 Postgresql 中创建一个命名的认值约束。我在 sqlServer Can I create a named default constraint in an add column statement in SQL Server? 中发现了类似的东西,但在 Postgresql 中找不到相同的东西。

为了提供一些上下文,我正在尝试向表中添加一列,并且在添加时我正在尝试将此命名约束添加到该列中。

任何帮助将不胜感激。

提前致谢

解决方法

像这样:

\d foo 
                 Table "public.foo"
  Column  |  Type   | Collation | Nullable | Default 
----------+---------+-----------+----------+---------
 fooid    | integer |           |          | 
 foosubid | integer |           |          | 
 fooname  | text    |           |          | 

alter  table foo add column bar varchar constraint u2_idx UNIQUE;
ALTER TABLE

 \d foo
                      Table "public.foo"
  Column  |       Type        | Collation | Nullable | Default 
----------+-------------------+-----------+----------+---------
 fooid    | integer           |           |          | 
 foosubid | integer           |           |          | 
 fooname  | text              |           |          | 
 bar      | character varying |           |          | 
Indexes:
    "u2_idx" UNIQUE CONSTRAINT,btree (bar)

更新。 要更接近您链接到的帖子所显示的内容:


alter  table foo add column baz varchar default ''  constraint nn_constraint NOT NULL;

\d foo
                             Table "public.foo"
  Column  |       Type        | Collation | Nullable |        Default        
----------+-------------------+-----------+----------+-----------------------
 fooid    | integer           |           |          | 
 foosubid | integer           |           |          | 
 fooname  | text              |           |          | 
 bar      | character varying |           |          | 
 baz      | character varying |           | not null | ''::character varying
Indexes:
    "u2_idx" UNIQUE CONSTRAINT,btree (bar)

虽然 NOT NULL 约束实际上并没有被命名。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。