mysql触发器运算_在MySQL中使用触发器计算列值?
我有一个表ListLocations,其中包含列Name,StateID,CountryID和DisplayName。 stateid指的是列出美国/领土及其缩写的表格,countryid指的是国家及其缩写的表格,displayname是我想要显示的字符串,是name和州/国家缩写的组合。
为了实现displayname,我有一个存储过程,它在插入后/更新后运行locations表,如下所示-CREATE DEFINER=`root`@`%` PROCEDURE `updateLocationDisplayName`(in locationId int, in stateId int, in countryId int)
BEGIN
IF (stateId = -1 AND countryId = -1) OR (countryId = 220 and stateId = -1)
THEN
UPDATE listlocations
SET displayName = name
WHERE idx = locationId;
ELSEIF (countryId = 220 and stateId !=-1)
THEN
UPDATE listlocations ll
LEFT JOIN listunitedstates us ON us.idx = ll.stateIdx
SET displayName = CONCAT(ll.name, ', ', us.abbreviation)
WHERE idx = locationId;
ELSEIF (countryId != -1 AND countryId != 220)
THEN
UPDATE listlocations ll
LEFT JOIN listcountries lc ON lc.idx = ll.countryIdx
SET displayName = CONCAT(ll.name, ', ', lc.abbreviation)
WHERE idx = locationId;
END IF;
END
但是现在,尝试更新listlocations时,我得到错误代码:1442。 无法更新存储函数/触发器中的表“listlocations”,因为调用此存储函数/触发器的语句已经使用了该表。
在MySQL5.6中处理这种情况的“正确”方法是什么--您有一列是根据其他列计算的,并且您希望它在插入/更新时保持更新(并且在DB本身中处理,而不是在应用程序代码中处理)?
mysql触发器运算_在MySQL中使用触发器计算列值?相关推荐
- mysql 字符串运算_使用MySQL字符串运算实施精巧化SQL注入攻击
我们先来看这样一个场景. 有以下表结构: mysql> desc admin; +----------+--------------+------+-----+---------+------- ...
- MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结
MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...
- 周末杂谈:在MYSQL中,添加数据行后,使用右外连接查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,表中没有的课程列值为空的解决方法
周末杂谈:在MYSQL中,添加数据行后,使用右外连接查询所有课程的选修情况,要求列出课程编号.课程名称.选修人数,表中没有的课程列值为空的解决方法 实验前期准备 course表(课程表) 在其中: c ...
- treeview自动从表中添加标题和列值做目录的方法2
treeview自动从表中添加标题和列值做目录的方法2,该方法是借鉴万一老师的 http://www.cnblogs.com/del/archive/2008/05/15/1114450.html 首 ...
- mysql里面的选择运算_在MySQL关系模型中,选择运算是在一个关系的所有元组中选择指定属性列,组成新关系。...
[单选题]下列关于元素第一电离能的说法不正确的是( ) [填空题]We had already ____ contact with the museum. [判断题]DELETE语句功能是对表中所有记 ...
- mysql 触发器编程_【mysql的编程专题】触发器
类似tp里面的数据模型回调接口,在数据表增删改的前或后触发执行其他的预订的sql; 一个触发器要具备4要素: 1.监视地点 -- 要执行触发器的表 2.监视事件 -- 由什么DML事件来牵引 3.触发 ...
- mysql 显示用户_在Mysql中如何显示所有用户?
这是一个mysql初学者经常问到的一个问题,今天我们就带大家看看是如何在Mysql中显示所有用户的.通常我们在mysql中使用SHOW DATABASES可以显示所有的数据库,SHOW TABLES将 ...
- mysql 特殊运算_用特殊的MySQL运算符获得更多数据比较功能
如果你在最近进行过SELECT或UPDATE查询,那么你很可能用到过一个或者多个MySQL的比较运算符来限制查询的输出结果.比较是大多数SELECT查询不可分割的一部分,而MySQL为这一功能提供了很 ...
- mysql里面取列里面值_在MySQL中获取特定的列值(名称)
要获取特定的列值,请使用LIKE子句.让我们首先创建一个表-mysql> create table DemoTable1809 ( Name varchar(20) ); 使用插入命令在表中插入 ...
最新文章
- SAP Commerce Cloud CMS page 和 page template 的概念
- 机器人总动员中的小草_机器人总动员读后感
- python rpc_对python调用RPC接口的实例详解
- VB将自定义资源中的文件释放出来
- c语言 0x12ed,C语言基本数据类型及运算题库有答案.doc
- Javascript第四章匿名函数第七课
- heatmap绘制热图时出现样本列名顺序调换
- 解码斯坦福开源狗DogGo--附硬件清单、源码、图纸、论文
- 记一次中Phobos家族Devos勒索病毒
- 互联网晚报 | 9月9日 星期四 | 8个电竞项目入选杭州亚运会;联想TruScale正式发布;国民养老保险公司获批筹建...
- 机房火灾自动报警系统常见问题及解决方案
- NURBS Curves
- BP神经网络的Matlab实现——人工智能算法
- 用于传感器互操作性问题的指纹匹配系统的大规模研究
- IDEA官方有中文版啦
- 用Python的Seaborn库绘制17个超好看图表
- Linux的so文件
- Ceph 学习——OSD读写流程与源码分析(一)
- C语言缺陷与陷阱(笔记)
- java吃货联盟系统源码_吃货联盟 源代码 Java初级小项目