【发布时间】:2018-12-30 02:10:21
【问题描述】:
在表 Aposta 中,每当我插入新行而不是 null 时,我希望 CodEstadoAposta 的值默认为 0,但这会一直显示在脚本输出中:
"错误报告-
ORA-00907: 缺少右括号
00907. 00000 - “缺少右括号”
*原因:
*行动:"
表背标:
CREATE TABLE Aposta (
CodAposta Number(10) Primary key,
data DATE default sysdate not null,
hora VARCHAR2(5) not null,
valor Number(10,2) not null,
quotaTotal Number(10,2) not null,
CodTipoAposta references TipoAposta(CodTipoAposta) not null,
CodEstadoAposta references EstadoAposta(CodEstadoAposta) default '0' not null
);
如果有帮助,请表 EstadoAposta 和 TipoAposta:
CREATE TABLE EstadoAposta (
CodEstadoAposta Number(1) Primary key
check (CodEstadoAposta in ('0','1','2')),
desc_EstadoAposta VARCHAR2(20) not null
);
CREATE TABLE TipoAposta (
CodTipoAposta Number(1) Primary key
check (CodTipoAposta in ('0','1')),
desc_TipoAposta VARCHAR2(20) not null
);
编辑:
这显示:default syntax error - 默认后有“1”,但这只是我测试。
【问题讨论】:
-
默认为零不需要引号,除非它是 varchar2 列
-
仍然“缺少右括号”
-
正如 Schern 所指出的,您需要在“引用”一词之前为这些列中的每一列提供一个数据类型,我在
'0'上的注释只是额外的
标签: sql oracle constraints oracle-sqldeveloper default