在 Oracle SQL 中创建默认约束
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3443360/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Create Default Constraint in Oracle SQL
提问by Raj More
Coming from SQL Server, I am learning some Oracle syntax.
来自 SQL Server,我正在学习一些 Oracle 语法。
This is my table DDL
这是我的表 DDL
CREATE TABLE "CDR"."EXTDL_REPORTSETS"
(
"ID" NUMBER(38,0) NOT NULL ENABLE,
"SHORTNAME" NUMBER(38,0) NOT NULL ENABLE,
"DESCRIPTION" NUMBER(38,0) NOT NULL ENABLE,
"ASOFSTARTDATETIME" NUMBER(38,0) NOT NULL ENABLE,
"ASOFENDDATETIME" NUMBER(38,0) NOT NULL ENABLE,
CONSTRAINT "PK_EXTDL_REPORTSETS" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "CDR_DATA" ENABLE
)
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE
(
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
)
TABLESPACE "CDR_DATA" ;
I want to default ASOFSTARTDATETIME to SysDate. How do I set a default constraint in PL/SQL?
我想将 ASOFSTARTDATETIME 默认为 SysDate。如何在 PL/SQL 中设置默认约束?
EDIT
编辑
The datatypes had gotten messed up, so I corrected it.
数据类型搞砸了,所以我纠正了它。
CREATE TABLE CDR.ExtDL_Reportsets(
Id NUMBER(38, 0) NOT NULL,
ShortName VARCHAR2(255) NOT NULL,
Description VARCHAR2(500) NOT NULL,
AsOfStartDateTime DATE NOT NULL,
AsOfEndDateTime DATE,
CONSTRAINT PK_ExtDL_Reportsets PRIMARY KEY (Id)
)
;
回答by OMG Ponies
Use:
用:
ALTER TABLE EXTDL_REPORTSETS
MODIFY last_ASOFSTARTDATETIME DATE DEFAULT SYSDATE
I'm having trouble digging up the 10g reference documentation - this is for 11g.
我在挖掘 10g参考文档时遇到了麻烦——这是针对 11g 的。
If you want to do it in the CREATE TABLE statement:
如果您想在 CREATE TABLE 语句中执行此操作:
CREATE TABLE "CDR"."EXTDL_REPORTSETS" (
"ID" NUMBER(38,0) NOT NULL ENABLE,
"SHORTNAME" VARCHAR2(255) NOT NULL ENABLE,
"DESCRIPTION" VARCHAR2(500) NOT NULL ENABLE,
"ASOFSTARTDATETIME" DATE DEFAULT SYSDATE NOT NULL ENABLE,
"ASOFENDDATETIME" DATE NOT NULL ENABLE,
CONSTRAINT "PK_EXTDL_REPORTSETS" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "CDR_DATA" ENABLE
)
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE (
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
)
TABLESPACE "CDR_DATA" ;