当前位置: 首页 > 面试题库 >

mysql上INSERT语句中的计算列

祁远
2023-03-14
问题内容

假设我想要一个表来记录其他表中的日期和列数(或者实际上是任何种类的数学/字符串concat等)。

CREATE TABLE `log` (
`id` INTEGER NOT NULL AUTO_INCREMENT ,
`date` DATETIME NOT NULL ,
`count` INTEGER NOT NULL ,
PRIMARY KEY (`id`)
);

每当执行插入操作时,是否可以为我计算计数列?

例如做类似的事情:

INSERT INTO log (date='foo');

并具有由mysql计算的计数。

显然,我可以自己做一个查询来获取计数并插入计数,但是这样做会更好。


问题答案:

当通过插入,更新或删除表来更改数据时,触发器是注释数据的最佳工具。

要使用当前日期自动将日志中新行的日期列设置为当前日期,您将创建一个看起来像这样的触发器:

create trigger log_date before insert on log 
for each row begin
   set new.date = current_date()
end;


 类似资料:
  • 问题内容: 这不起作用: 任何想法如何通过id将插入范围缩小到特定行? 问题答案: 在插入语句中,您将没有现有行来执行操作?您要插入新行,是否意味着要执行更新语句?

  • 主要内容:1.不指定列名,2.通过指定列名称SQL INSERT语句用于在表中插入单个或多个数据。 在SQL中,可以通过以下两种方式插入数据: 不指定列名称 通过指定列名称 假设有一个表: 的结构和数据记录如下 - EMP_ID EMP_NAME CITY SALARY AGE 1 Angelina Chicago 200000 30 2 Robert Austin 300000 26 3 Christian Denver 100000 4

  • 主要内容:语法,实例,使用一个表来填充另一个表SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行。 语法 INSERT INTO 语句有两种基本语法,如下所示: 在这里,column1, column2,...columnN 是要插入数据的表中的列的名称。 如果要为表中的所有列添加值,您也可以不需要在 SQLite 查询中指定列名称。但要确保值的顺序与列在表中的顺序一致。SQLite 的 INSERT INTO

  • 问题内容: 首先,这是问题的简要摘要: 是否可以有条件地运行语句?类似于以下内容: 现在,我知道可以使用存储过程来做到这一点。我的问题是:我可以在查询中这样做吗? 现在,我为什么要这样做? 假设我们有以下两个表: 现在,假设有一个订购20个Voodoo娃娃(产品ID 2)的订单。 我们首先检查手头上是否有足够的数量: 然后,如果计算结果为true,则运行查询。 到目前为止,一切都很好。 但是,并发

  • 本文向大家介绍正确使用MySQL INSERT INTO语句,包括了正确使用MySQL INSERT INTO语句的使用技巧和注意事项,需要的朋友参考一下 以下的文章主要介绍的是MySQL INSERT INTO语句的实际用法以及MySQL INSERT INTO语句中的相关语句的介绍,MySQL INSERT INTO语句在实际应用中是经常使用到的语句,所以对其相关的内容还是多多掌握为好。 My

  • 打开和关闭连接: 注册用户 错误消息 '/'应用程序中的服务器错误。 INSERT INTO语句中存在语法错误。 描述:在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的起源的更多信息。 异常详细信息:系统。数据。OleDb。OleDbException:INSERT INTO语句中的语法错误。 源错误: 第100行:命令。ExecuteNonQuery();第1