货日期(jhrq)、进货总价(zje)、付款方式(fkfs)、操作员(zzy)、进货记录总表ID(jhzbid)/CREATE PROCEDURE insert_jh(IN gysid INT, IN jhrq DATE, IN zje DECIMAL(10,2), IN fkfs VARCHAR(20), IN zzy VARCHAR(20))BEGINSTART TRANSACTION;INSERT INTO jhzb(gysid, jhrq, zje, fkfs, zzy) VALUES(gysid, jhrq, zje, fkfs, zzy);SET @last_id = LAST_INSERT_ID();--获取新插入的进货记录总表IDINSERT INTO jhmxb(spid, jhzbid, jhsl)SELECT spid, @last_id, jhsl FROM jhmx WHERE gysid = gysid AND jhrq = jhrq GROUP BY spid;COMMIT;END$$这个实验主要涉及了数据库中的触发器和存储过程的应用,以及汉字到拼音缩写的转换。以下是对这些知识点的详细解释: 1. 触发器(Triggers):在MySQL中,触发器是一种特殊的存储过程,它会在特定的数据库操作(如INSERT、UPDATE、DELETE)之前或之后自动执行。在实验中,有两个触发器updatepysxupdatepysx1,分别在spb表的商品名称插入和更新时,自动计算并设置名称的拼音缩写。这提高了数据的一致性和准确性。 2. 函数(Functions)qxmjpqpysx是自定义的MySQL函数。qxmjp函数接收一个商品名,将其转化为拼音缩写。内部调用了qpysx函数,该函数将单个汉字转换为对应的拼音首字母。这展示了如何利用MySQL的用户定义函数来处理复杂的业务逻辑。 3. 拼音转换:实验中使用了qpysx函数,通过GBK编码将汉字转换为ASCII值,并映射到对应的拼音首字母。这是一种常见的在数据库中处理汉字到拼音的方法,方便进行基于拼音的搜索和排序。 4. 库存管理*:触发器updatekcsl在进货明细表jhmxb插入新记录前,会自动更新库存表kcb