首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从复合类型创建表时如何设置默认值?

从复合类型创建表时如何设置默认值?
EN

Stack Overflow用户
提问于 2017-03-03 03:58:45
回答 1查看 541关注 0票数 2

我想为从复合类型创建的表的字段设置默认值,但我得到了一个错误:

代码语言:javascript
复制
PLSQL $ cat ../animal2.sql 
DROP TYPE IF EXISTS zoo_t CASCADE;
DROP TYPE IF EXISTS animal_t;
CREATE TYPE animal_t AS (
    animal_id           integer,
    animal_color        varchar,
    animal_name         varchar
);
CREATE TYPE zoo_t AS (
    wolf_object         animal_t,
    bear_object         animal_t    
);
CREATE TABLE zoopark OF zoo_t (
    (wolf_object).animal_color  WITH OPTIONS DEFAULT 'black'
);
 PLSQL $ psql dev < ../animal2.sql 
DROP TYPE
DROP TYPE
CREATE TYPE
CREATE TYPE
ERROR:  syntax error at or near "("
LINE 2:  (wolf_object).animal_color  WITH OPTIONS DEFAULT 'black'
         ^
PLSQL $ 

这里的问题是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-03-03 04:27:46

默认情况下不能直接设置字段。但您可以设置整个字段:

代码语言:javascript
复制
CREATE TABLE zoopark OF zoo_t (
    wolf_object  WITH OPTIONS DEFAULT (NULL, 'black', NULL)
);

或者,如果未设置触发器但字段wolf_object不为空,则可以创建触发器并设置animal_color;如果字段为空,则创建整个字段

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42564794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档