我有一个表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中使用触发器计算列值?相关推荐

  1. mysql 字符串运算_使用MySQL字符串运算实施精巧化SQL注入攻击

    我们先来看这样一个场景. 有以下表结构: mysql> desc admin; +----------+--------------+------+-----+---------+------- ...

  2. MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结

    MySQL学习笔记_关于MySQL的字符类型VARCHAR长度知识总结 一.VARCHAR存储和行长度限制 1.VARCHAR(N)中,N指的是字符的长度,VARCHAR类型最大支持65535,指的是 ...

  3. 周末杂谈:在MYSQL中,添加数据行后,使用右外连接查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,表中没有的课程列值为空的解决方法

    周末杂谈:在MYSQL中,添加数据行后,使用右外连接查询所有课程的选修情况,要求列出课程编号.课程名称.选修人数,表中没有的课程列值为空的解决方法 实验前期准备 course表(课程表) 在其中: c ...

  4. treeview自动从表中添加标题和列值做目录的方法2

    treeview自动从表中添加标题和列值做目录的方法2,该方法是借鉴万一老师的 http://www.cnblogs.com/del/archive/2008/05/15/1114450.html 首 ...

  5. mysql里面的选择运算_在MySQL关系模型中,选择运算是在一个关系的所有元组中选择指定属性列,组成新关系。...

    [单选题]下列关于元素第一电离能的说法不正确的是( ) [填空题]We had already ____ contact with the museum. [判断题]DELETE语句功能是对表中所有记 ...

  6. mysql 触发器编程_【mysql的编程专题】触发器

    类似tp里面的数据模型回调接口,在数据表增删改的前或后触发执行其他的预订的sql; 一个触发器要具备4要素: 1.监视地点 -- 要执行触发器的表 2.监视事件 -- 由什么DML事件来牵引 3.触发 ...

  7. mysql 显示用户_在Mysql中如何显示所有用户?

    这是一个mysql初学者经常问到的一个问题,今天我们就带大家看看是如何在Mysql中显示所有用户的.通常我们在mysql中使用SHOW DATABASES可以显示所有的数据库,SHOW TABLES将 ...

  8. mysql 特殊运算_用特殊的MySQL运算符获得更多数据比较功能

    如果你在最近进行过SELECT或UPDATE查询,那么你很可能用到过一个或者多个MySQL的比较运算符来限制查询的输出结果.比较是大多数SELECT查询不可分割的一部分,而MySQL为这一功能提供了很 ...

  9. mysql里面取列里面值_在MySQL中获取特定的列值(名称)

    要获取特定的列值,请使用LIKE子句.让我们首先创建一个表-mysql> create table DemoTable1809 ( Name varchar(20) ); 使用插入命令在表中插入 ...

最新文章

  1. SAP Commerce Cloud CMS page 和 page template 的概念
  2. 机器人总动员中的小草_机器人总动员读后感
  3. python rpc_对python调用RPC接口的实例详解
  4. VB将自定义资源中的文件释放出来
  5. c语言 0x12ed,C语言基本数据类型及运算题库有答案.doc
  6. Javascript第四章匿名函数第七课
  7. heatmap绘制热图时出现样本列名顺序调换
  8. 解码斯坦福开源狗DogGo--附硬件清单、源码、图纸、论文
  9. 记一次中Phobos家族Devos勒索病毒
  10. 互联网晚报 | 9月9日 星期四 | 8个电竞项目入选杭州亚运会;联想TruScale正式发布;国民养老保险公司获批筹建...
  11. 机房火灾自动报警系统常见问题及解决方案
  12. NURBS Curves
  13. BP神经网络的Matlab实现——人工智能算法
  14. 用于传感器互操作性问题的指纹匹配系统的大规模研究
  15. IDEA官方有中文版啦
  16. 用Python的Seaborn库绘制17个超好看图表
  17. Linux的so文件
  18. Ceph 学习——OSD读写流程与源码分析(一)
  19. C语言缺陷与陷阱(笔记)
  20. java吃货联盟系统源码_吃货联盟 源代码 Java初级小项目

热门文章

  1. css加载会造成阻塞吗
  2. java 调 pro*c
  3. Window Mobile SmartPhone智能手机软件开发vs2005 简体中文版 设置指南!
  4. 人工智能筑起网络安全“铜墙铁壁”
  5. ReentrantLock和synchronized两种锁定机制
  6. 03_NoSQL数据库之Redis数据库:list类型
  7. vector排序与查找
  8. Hive代码组织及架构简单介绍
  9. ListView 异步更新出现问题的解决(Handler)
  10. Delegate和Command Pattern