MySql和Oracle的建表即约束设置不同[日期类型的默认值设置方式不同]

Oracle中 给日期时间设置默认值的方式: 

CREATE TABLE "PHR"."T_UM_USERDETAIL" (
"PID" NVARCHAR2(128) NOT NULL ,
"USERID" NVARCHAR2(128) NULL ,
"PHOTOID" NVARCHAR2(128) NULL ,
"PHONENUM" NVARCHAR2(128) NULL ,
"BIRTHDATE" DATE NULL ,
"GENDERCODE" NVARCHAR2(128) NULL ,
"HRID" NVARCHAR2(128) NULL ,
"AUTHORIZEDKEY" NVARCHAR2(20) NULL ,
"KEYEFFECTIVE" NUMBER(11) NULL ,
"KEYINPUTDATE" timestamp default CURRENT_TIMESTAMP  NOT NULL ,
"REMARKS" NVARCHAR2(240) NULL
)
LOGGING
NOCOMPRESS
NOCACHE

;

 

-- Checks structure for table "PHR"."T_UM_USERDETAIL"
-- ----------------------------
ALTER TABLE "PHR"."T_UM_USERDETAIL" ADD CHECK ("PID" IS NOT NULL);

-- ----------------------------
-- Primary Key structure for table "PHR"."T_UM_USERDETAIL"
-- ----------------------------
ALTER TABLE "PHR"."T_UM_USERDETAIL" ADD PRIMARY KEY ("PID");

 

===========================================

MySql中 给日期时间设置默认值的方式:

CREATE TABLE `t_um_userdetail` (
  `PID` varchar(128) NOT NULL COMMENT '主键',
  `USERID` varchar(128) default NULL COMMENT '用户账号',
  `PHOTOID` varchar(128) default NULL,
  `PHONENUM` varchar(128) default NULL COMMENT '联系电话',
  `BIRTHDATE` date default NULL COMMENT '出生日期',
  `GENDERCODE` varchar(128) default NULL COMMENT '性别代码',
  `HRID` varchar(128) default NULL COMMENT '健康档案号',
  `AUTHORIZEDKEY` varchar(20) default NULL COMMENT '授权码',
  `KEYEFFECTIVE` int(11) default NULL COMMENT '授权码有效时间',
  `KEYINPUTDATE` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP COMMENT '授权码设置时间',
  `REMARKS` varchar(240) default NULL,
  PRIMARY KEY  (`PID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户详细信息';

 

==================================

区别2: Oracle设置约束是在建表语句之后,而MySql的约束设置是在建表语句里面一起设置的。

 

注意:如果使用数据库提供的默认值,则在hibernate的映射文件中要增加配置参见 http://blog.csdn.net/mycup163/article/details/7222336   ,这样后台就不用给对应的字段赋值了。

你可能感兴趣的:(oracle,Hibernate,mysql,null,table,structure)