在更新时间戳上添加列

Joh*_* F. 4 oracle-11g row-modification-time

我想更改一个表以包含modifiedcreated列。但是,我在添加modified列时遇到了问题。我收到以下错误:

SQL 错误:ORA-00907:缺少右括号 00907. 00000 - “缺少右括号”

我正在阅读此 Oracle 文档(http://docs.oracle.com/cd/E17952_01/refman-5.5-en/timestamp-initialization.html)以获取有关如何正确编写ON UPDATE语法的示例

这是我的 SQL。

ALTER TABLE FOOBAR
ADD (
  created TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL,
  modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Run Code Online (Sandbox Code Playgroud)

为什么会出现缺少右括号的错误?

Bal*_*app 6

那是 MySQL 文档,而不是 Oracle 数据库文档。Oracle 数据库中没有这样的子句。使用触发器。这是一个例子:链接

  • Oracle MySQL 数据库与 Oracle 数据库?谷歌搜索`Oracle <SQL 语句>` 不再总是指向 Oracle 数据库文档,但有时会首先列出 MySQL 文档链接。难怪人们会感到困惑。 (2认同)