MySQL如何创建一个触发器,功能是在一张表中insert一条数据,另一张表中的数据相应地进行update。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL如何创建一个触发器,功能是在一张表中insert一条数据,另一张表中的数据相应地进行update。相关的知识,希望对你有一定的参考价值。

如在人事管理系统中,当对调动表(change)中的newdept(新部门)进行插入后,档案表(message)中的dept(部门)相应地修改为调动表中插入的newdept。条件是message表中的mid(员工编号)与change表中的cid(员工编号)相等

参考技术A CREATE TRIGGER BeforeInsertTest
BEFORE INSERT ON change
FOR EACH ROW
BEGIN
UPDATE
message
SET
dept = new.newdept
WHERE
mid = new.cid ;
END;本回答被提问者采纳

mysql 一张表中如何查询某个字段最长值的那条记录?

案例; 表office
id="1", itemId="asdf1234",name="李四", officeId="1"
id="2", itemId="asdf123" name="李四", officeId='2'
id="3", itemId="asdf12" name="李四", officeId="3"

id="4" itemId="zxcv123" name="张三",officeId="1"
id="5" itemid="zxcv12" name="张三",officeId="2"
id="6" itemId = "zxcv1" name="张三",officeId="3"
。。等等

这是一张表的数据,里面有李四和张三分别出现了三次(后期可能会出现更多),officeId指的是部门,每个部门里都有同名的人。 我现在查出李四的itemid最长那条记录 就是id1
如何查询?如何写sql 同样的张三也是 以此类推 在线等。。
或者是在java里如何判断取出ItemId最长的那条记录

参考技术A 1、一般查询语句:SELECT `lcontent` FROM `caiji_ym_liuyan`
查询数据:
2、有些时候需要查询某个字段的长度为多少时候才显示数据:
SQL语句:SELECT `lcontent` FROM `caiji_ym_liuyan` where
length(lcontent)<=40
PS:在mysql中一个汉字等于3个字节,所以查询的时候需要转换一下
特别要注意的就时候对于字节的转换追问

您这个还是没解决到我的问题呢

参考技术B length(字段名)函数可找出记录中对应字段的长度,用这个函数就可以了。
select语句如下:
select * from office where name='李四' and length(itemid)=(select max(length(itemid)) from office)
这样就可以找出itemid最长的李四的记录了,当然了,没对记录的条数做限制,可能会有多条记录

以上是关于MySQL如何创建一个触发器,功能是在一张表中insert一条数据,另一张表中的数据相应地进行update。的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的触发器

MySQL中如何在关联表中查询出其中一个外键不存在的数据?

如何定时更新mysql一张表中的某个字段

有两个mysql表,两个表中的字段一样,其中一个表更新的时候,另一个表也会更新,怎样做到呢?

在 MySQL 中,如何将一张表的内容复制到同一个数据库中的另一张表中?

在 MySQL 中,如何将一张表的内容复制到同一个数据库中的另一张表中?