吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1440|回复: 8
收起左侧

[求助] 求数据库大佬帮助

[复制链接]
JulTianxiang 发表于 2021-1-27 15:30
28吾爱币
在学生表中插入一条学生信息,先判断班级表中是否有该学生的班级,如果没有,就添加并更新班级人数,如果有,直接更新班级人数,请问怎么用触发器实现?
student(Sno,Sname,Ssex,Syear,Sdept,Smajor,Classname,Sbirth,Saddress)
class(Syear,Cdept,Cmajor,Classnem,Classnumber)
触发器不能实现的话,应该用什么实现??

最佳答案

查看完整内容

个人理解instead of 触发器就可以,执行inser语句之后触发器执行,去instered虚表中获取班级信息保存变量,然后查询class表带上这个条件信息,如果if exists为true则更新此班级人数,否则就向class表中insert一条语句, 但是你这个需求有问题,如果此班级不存在,那么class表中的其他属性值从哪来?还有,class和student应该是有外键关联的,这样的话插入一条从表class没有的值数据库也会报错的。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

郑郑郑 发表于 2021-1-27 15:30
个人理解instead of 触发器就可以,执行inser语句之后触发器执行,去instered虚表中获取班级信息保存变量,然后查询class表带上这个条件信息,如果if exists为true则更新此班级人数,否则就向class表中insert一条语句,
但是你这个需求有问题,如果此班级不存在,那么class表中的其他属性值从哪来?还有,class和student应该是有外键关联的,这样的话插入一条从表class没有的值数据库也会报错的。

免费评分

参与人数 1吾爱币 +1 收起 理由
默默看着你 + 1 老哥明白人

查看全部评分

ming1332236 发表于 2021-1-27 15:38
多种实现方式,逻辑层业务代码实现,存储过程,触发器都可以,具体怎么实现要看是什么数据库,不同数据库实现方式不同
 楼主| JulTianxiang 发表于 2021-1-27 15:47
ming1332236 发表于 2021-1-27 15:38
多种实现方式,逻辑层业务代码实现,存储过程,触发器都可以,具体怎么实现要看是什么数据库,不同数据库实现方 ...

就很简单的一个课程设计用的是mysql+navicat,想在navicat中设计学生表时添加触发器,对班级表进行操作,就是sql语句不太会
梓沐 发表于 2021-1-27 15:49
本帖最后由 梓沐 于 2021-1-27 15:52 编辑

搞个存储过程把
DQQQQQ 发表于 2021-1-27 16:17
是我见识浅薄了嘛?有select触发器???增删改才有触发器吧?
okij12589 发表于 2021-1-27 16:22
很想帮你,但是不会触发器,
只会写php逻辑
ChengXuHa 发表于 2021-1-27 16:41
https://www.cnblogs.com/Brambling/p/6741666.html 希望可以帮到你
twshe 发表于 2021-1-27 16:43
[SQL] 纯文本查看 复制代码
USE [jxcdata]
GO
/****** Object:  Trigger [dbo].[修改则写入时间]    Script Date: 01/27/2021 16:41:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[修改则写入时间]
ON [dbo].[spml]
WITH EXECUTE AS CALLER
AFTER UPDATE
AS
BEGIN
update spml set UPDATE_TIME=getdate()
FROM 
  SPML AS F
  INNER JOIN inserted 
  AS i 
  ON F.SPBH = i.SPBH;
END


这是我弄的SQL SERVER,你看看改改能用吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-4 23:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表