【问题标题】:Unexpected IDENT_QUOTED on getDate()getDate() 上出现意外的 IDENT_QUOTED
【发布时间】:2013-05-29 16:12:48
【问题描述】:

我在 getDate() 上收到 UnExpected IDENT_QUOTED,你能看出问题吗?

CREATE TABLE IF NOT EXISTS Loading
  (
     L_Id            INT,
     PO_Id           INT NOT NULL,
     LD_Id           INT NOT NULL,
     LE_Id           INT,
     W_Id            INT NOT NULL,
     RemainingWieght DOUBLE,
     ExpectedStart   DATETIME NOT NULL DEFAULT GETDATE(),
     ExpectedEnd     TIMESTAMP,
     LoadingStatus   ENUM('ASSIGNED', 'IN_PROCESS', 'STOPPED', 'COMPLETED'),
     PRIMARY KEY (L_Id),
     FOREIGN KEY (`PO_Id`) REFERENCES `PartOder` (`PO_Id`),
     FOREIGN KEY (`LD_Id`) REFERENCES `LoadingDock` (`LD_Id`),
     FOREIGN KEY (`LE_Id`) REFERENCES `LoadingError` (`LE_Id`),
     FOREIGN KEY (`W_Id`) REFERENCES `Weighing` (`W_Id`)
  ); 

【问题讨论】:

  • 什么风格的 SQL?微软、甲骨文等
  • 您已经尝试从 CREATE TABLE 语句中删除除了 ExpectedStart 列的定义之外的所有内容,不是吗?当您这样做时,问题并没有消失,是吗?
  • GETDATE() 是一个 TSQL 函数,您似乎没有使用 SQL Server 或 Sybase。

标签: mysql sql create-table


【解决方案1】:

在 MSSQL 中 getDate() 是不确定的

我认为这可能意味着您应该将约束添加为单独的语句:

ALTER TABLE MyTable
ADD CONSTRAINT DF_MyTable_MyColumn
DEFAULT GETDATE() FOR MyColumn

不过这有点猜想了……它还有一个好处就是命名约束……

HTH

【讨论】:

  • 不要认为 OP 实际上是在使用 SQL Server。这似乎是一条 MySQL 错误消息。无论如何ExpectedStart DATETIME NOT NULL DEFAULT GETDATE(), 在 SQL Server 中都很好。
猜你喜欢
  • 1970-01-01
  • 2013-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-02
  • 2016-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多