作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More
- 主要知识点列表
编号 | 语言或插件 | 知识点 | 说明 |
---|---|---|---|
1 | sql server | create table | 关键词,创建表 |
2 | sql server | indentity | 自增长函数 |
3 | sql server | primary key | 设置主键标识 |
4 | sql server | drop table | 移除对象,比如:表、存储过程、触发器等 |
5 | sql server | delete tableName | 删除表记录 |
6 | sql server | truncate tableName | 删除表所有记录,并重置自增编号重新开始 |
7 | sql server | create trigger | 创建触发器关键词 |
接上篇文章内容
- 模拟数据
insert into myArticle(title,content,author,readCount,createTime,updateTime)
values(
'触发器的使用',
'通过触发器来实现文章阅读阅读数量的统计',
'全栈小5',
0,
getdate(),
getdate()
)
- 查询记录
2)创建文章阅读记录表
为什么要多一个文章阅读记录表,这个是为了后续通过服务或者其他定时器进行阅读数量校正使用,因为在高并发下可能会存在数量更新差异
- 表设计
编号、文章编号、添加时间
- 创建表
--drop table readRecord
create table readRecord
(
id int identity(1,1) primary key,
articleId int,
createTime datetime,
)
【创建触发器】
1)关键词,create trigger
2)语句如下
--drop trigger article_tri
create trigger article_tri
on readRecord
after insert
as
begin
declare @articelId int
select @articelId=a.articleId from inserted a
declare @count int
select @count=count(a.articleId) from readRecord a where articleId=@articelId
update myArticle
set readCount=@count
where id=@articelId
end
3)添加阅读记录,查询效果
insert into readRecord(articleId,createTime)
values(1,getdate())