【问题标题】:MySQL NEW keywordMySQL NEW 关键字
【发布时间】:2015-10-12 12:25:21
【问题描述】:

我有一个看似基本的问题,但我一直找不到答案。 MySQL 中的 NEW 关键字是指执行给定操作后行的外观还是仅指查询中使用的实际值?例如:

假设我有一个表示例,其中包含 A int(6)、B varchar(10) 和 C varchar(10) 列。该表有一行(1,“hello”,“world”)。如果我再执行更新:

UPDATE TABLE sample
SET C = "bob"
WHERE A = 1;

如果我有更新后触发器,我希望 NEW.C 的值为“bob”,但 NEW.B 的值为“hello”还是 null?

【问题讨论】:

  • 没有。 NEW 指的是随查询传入的数据(您在 VALUES 中为 INSERTSETUPDATE 指定的数据,将未指定的值保留在当前状态)。另一方面,OLD 指的是当前记录状态(修改前)
  • 好的,谢谢。如果我要从另一个表更新一个表,并且如果触发器是在插入或更新之后,我什至还需要 NEW 或 OLD 关键字吗?我可以这样做:UPDATE sample2 u join sample s on u.A = s.A SET u.B = s.B WHERE u.A = s.A;@AlmaDo

标签: mysql mysql5 mysql-5.0


【解决方案1】:

NEW.C 的值将是 hello。您还可以使用OLD 获取之前的值(更新前)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多