Hi,我是无丶味,这篇文章是我在做数据库实验所遇到的问题及解决方法的记录。
养成好习惯:先点赞后观看
所遇到的问题
在设置触发器触发后所做的事件时,需要根据最新插入表的一行记录去查询,于是实验就陷入卡顿中。
解决方法
经过查阅相关资料及大佬的提点,最后终于解决了这个难题:
在需要查询的表中添加一个时间列,类型设置为DATETIME型,在将此列的默认值设置为GETDATE(),这样就可以获取到当前时间(具体到秒),再通过ORDER BY子句设置时间列降序排列,取此列的第一行数据就相当与此表的最后一行数据。
注:不要把时间列设置为DATE型,这样的话只是出现日期,不会出现具体时间
select top 1 *
from Vote
order by Ptime desc
如何查询第一行插入的数据
在表中通过修改语句加入一个时间列,类型为DATETIME型,默认值为GETDATE()。
ALTER TABLE 表名
ADD 列名 DATETIME DEFAULT GETDATE();
再通过查询语句去查询第一行插入的数据,利用ORDER BY 子句,让时间列升序排列,取第一行数据即可。
select top 1 *
from 表名
order by 时间列列名 asc
如何去查询最后一行插入的数据
在表中通过修改语句加入一个时间列,类型为DATETIME型,默认值为GETDATE()。
ALTER TABLE 表名
ADD 列名 DATETIME DEFAULT GETDATE();
再通过查询语句去查询最后一行插入的数据,利用ORDER BY 子句,让时间列降序排列,取第一行数据即可。
select top 1 *
from 表名
order by 时间列列名 desc