因此,我有一个名为Companies的表,我想为插入和更新时间添加2列。
我该怎么做呢?我不想在我的查询中添加插入和更新日期。这是我的CREATE语句
create table companies(
name varchar(20),
city char(10),
numberofemployees int(10),
averagesalary double
);
alter table companies add inserttime datetime, add updatedtime datetime, add id serial;
我需要INSERT查询如下所示:
insert into companies values ("company","bglr",30,400.00)
并需要输出为
name,city,numberofemployees,averagesalary,inserttime,updatetime
company blr 30 400.00 23:00:11 23:00:11
1条答案
按热度按时间g6ll5ycj1#
首先,您必须更改INSERT语句,因为值的数量与列数不匹配。幸运的是,您可以指定与给定值对应的列的子集:
由于您没有为插入时间和更新时间提供值,因此将对新记录使用缺省值。使用缺省值插入记录的另一种方法是输入
DEFAULT
关键字,而不是具体的值(有关详细信息,请参阅INSERT的文档)。在您的例子中,缺省值应该是
NULL
,因为您没有定义其他任何内容。要修改列的DEFAULT
值,可以修改其定义:这样,插入时间就被设置为新插入记录的当前时间。当然,您也可以在
CREATE TABLE
语句中或在添加列时使用DEFAULT
子句。接下来,我们来看看更新时间。通常,您希望将其自动更新为当前时间。这可以在MySQL中通过为缺省值指定
ON UPDATE
子句来实现(Automatic Initialization and Updating for TIMESTAMP and DATETIME中的详细信息:从现在起,当插入新记录或更新现有记录时,更新时间将自动设置为当前时间。
有关MySQL中缺省值的更多信息,请参阅documentation。