【发布时间】:2017-09-25 13:16:21
【问题描述】:
我想将一个 PostgreSQL 数据库迁移到 Oracle 12c 中,例如在下面的表创建中,我发现了一些困难:
- 如何(如果可能)使用 where 子句创建这些唯一索引?
- 如何正确添加这个主键pessoa_id?
- 为什么我收到此错误“缺少右括号”?
代码:
create table nano.pessoa (
id GENERATED BY DEFAULT ON NULL AS IDENTITY,
nome varchar(99) not null,
sobrenome varchar(99) not null,
nascimento_dt date,
registro varchar(32) not null,
fisica_sn bool default true, -- no caso de pf, true, pf, falso
matriz_sn bool default false, -- no caso de pf, é o genero, masculino = true
confirmado_sn bool default false,
constraint pessoa_id primary key(id)
);
create unique index pessoa_juridica_cnpj_ix on pessoas.pessoa (registro) where (fisica_sn = false);
create unique index pessoa_fisica_ix on pessoas.pessoa (nome, sobrenome, nascimento_dt) where (fisica_sn = true);
create unique index pessoa_fisica_cpf_ix on pessoas.pessoa (registro) where ((fisica_sn = true) and ((registro <> null) and (registro <> '')));
【问题讨论】:
标签: oracle indexing database-migration