插入mysql时在列中添加当前时间

时间:2018-05-18 07:29:39

标签: mysql database

所以我有这张桌子

create table c_order(
    order_date         date               not null,
    order_id           number,
    customer_id        number             not null,
    product_id         number             not null,
    primary key (order_id),
    foreign key (customer_id) references Customer(customer_id),
    foreign key (product_id) references products(product_id)
);

客户订购产品。

现在我希望它是这样的,当使用'Insert into'输入数据时,我们不需要插入日期而是会自动保存到当前数据。我应该更改create table结构还是使用触发器?那么语法是什么?在触发器中是在插入之前/之后吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我找到了自己的答案..

默认在这里不起作用,因为数据类型是日期,并且函数不能用于将默认值放在date数据类型中(对于时间戳,可以这样做)。

答案是触发器。代码是(对于oracle ..对于mysql sysdate()应该改为now())

CREATE or REPLACE TRIGGER auto_insert_date BEFORE INSERT ON c_order
    FOR EACH ROW 
    begin
    :NEW.order_date := sysdate();
    end;