【问题标题】:How to update a column value in datatype timestamp using Oracle 10G如何使用 Oracle 10G 更新数据类型时间戳中的列值
【发布时间】:2017-01-12 03:55:58
【问题描述】:

同时使用数据类型时间戳在 update_time 中添加一列

所以我在 SQL 命令行中使用 Oracle 10G 更新数据时需要更新时间戳值

SQL> ALTER TABLE TIME_STAMPTABLE ADD UPDATE_TIME TIMESTAMP 
           DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

但我得到了:

第 1 行出现错误:
ORA-01735: 无效的 ALTER TABLE 选项

【问题讨论】:

  • Oracle 只是 doesn't support that syntax。您必须使用触发器在更新期间自动设置列值。
  • 你在Oracle 10g manual哪里找到on update current_timestamp
  • @Horse..我猜 OP 从 DB2 中获取了 alter syntax 并在 oracle 中试试运气。

标签: sql oracle10g oracle-xe


【解决方案1】:

正如 Alex 所说,oracle 不支持这种语法,您需要在您的表上创建如下所示的触发器。

SQL> ALTER TABLE TIME_STAMPTABLE ADD UPDATE_TIME TIMESTAMP ;

SQL> create or replace trigger upd_tim_stmp
before INSERT OR UPDATE on TIME_STAMPTABLE 
for each row
begin
:new.UPDATE_TIME:= CURRENT_TIMESTAMP;
end;
 /

【讨论】:

    猜你喜欢
    • 2015-03-26
    • 2012-02-17
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 2012-08-19
    • 2013-01-11
    • 2011-08-10
    • 1970-01-01
    相关资源
    最近更新 更多