使用getdate()函数创建表

时间:2013-12-07 09:56:43

标签: sql oracle

尝试创建具有getdate()函数

的表
CREATE TABLE Orders 
(OrderId int NOT NULL PRIMARY KEY, 
 ProductName varchar(50) NOT NULL, 
 OrderDate datetime NOT NULL DEFAULT GETDATE() 
);

但收到错误

  

ora-00901右括号缺失

2 个答案:

答案 0 :(得分:2)

您需要使用:

  • DATE数据类型(包含数年到秒的数据);
  • 使用SYSDATE;
  • 检索oracle中的当前日期/时间
  • DEFAULT需要在约束之前;和
  • 虽然VARCHAR有效并且目前与VARCHAR2同义,但您可能希望将VARCHAR2用于字符串数据类型。

像这样:

CREATE TABLE Orders 
(
   OrderId     INT          NOT NULL
                            PRIMARY KEY, 
   ProductName VARCHAR2(50) NOT NULL, 
   OrderDate   DATE         DEFAULT SYSDATE
                            NOT NULL  
);

答案 1 :(得分:1)

尝试这样做:

CREATE TABLE Orders (
  OrderId INT NOT NULL PRIMARY KEY,
  ProductName VARCHAR(50) NOT NULL,
  OrderDate DATE DEFAULT sysdate NOT NULL
  );
  • 将DATETIME更改为DATE
  • 将GETDATE()更改为sysdate
  • 在DEFAULT
  • 之后移动了NOT NULL

sqlfiddle demo