update内容如果不变化,update_time也不会改变

表定义的时候,update_time会自动更新。

`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

但如果update的内容和原有内容完全一致,则update_time不会更新。

例子:

update之前如下图:

执行update操作,注意时间为2022-05-23 16:23:29,表示执行成功

重新去查表,得到如下图:

update_time没发生变化。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的 Python 代码,实现了您所需的功能: ```python import vtk import math # 定义一个函数来计算平面法向量的第三个数 def calc_z(time): return time * math.exp(-12) # 创建一个平面 plane = vtk.vtkPlane() plane.SetOrigin(0, 0, 0) plane.SetNormal(0, 0, 1) # 创建一个平面小部件 widget = vtk.vtkImplicitPlaneWidget2() widget.SetOrigin(plane.GetOrigin()) widget.SetNormal(plane.GetNormal()) widget.SetPlaceFactor(1.25) widget.TextureVisibilityOff() # 创建一个 Actor 来显示平面 plane_src = vtk.vtkPlaneSource() plane_src.SetOrigin(0, 0, 0) plane_src.SetPoint1(1, 0, 0) plane_src.SetPoint2(0, 1, 0) plane_src.SetXResolution(10) plane_src.SetYResolution(10) plane_mapper = vtk.vtkPolyDataMapper() plane_mapper.SetInputConnection(plane_src.GetOutputPort()) plane_actor = vtk.vtkActor() plane_actor.SetMapper(plane_mapper) plane_actor.GetProperty().SetColor(1, 1, 1) plane_actor.GetProperty().SetOpacity(0.5) # 创建一个 Renderer 和一个 RenderWindow renderer = vtk.vtkRenderer() renderer.AddActor(plane_actor) renderer.SetBackground(0.3, 0.3, 0.3) render_window = vtk.vtkRenderWindow() render_window.AddRenderer(renderer) # 创建一个文本 Actor 来显示平面的原点和法线 text_actor = vtk.vtkTextActor() text_actor.SetTextScaleModeToProp() text_actor.GetPositionCoordinate().SetCoordinateSystemToNormalizedViewport() text_actor.GetPositionCoordinate().SetValue(0.05, 0.95) text_actor.SetInput("Origin: (0, 0, 0)\nNormal: (0, 0, 1)") text_actor.GetTextProperty().SetFontSize(24) text_actor.GetTextProperty().SetColor(1, 1, 1) renderer.AddActor2D(text_actor) # 定义一个函数来更新平面的法线和原点 def update_plane(time): plane.SetOrigin(0, 0, 0) plane.SetNormal(0, 0, calc_z(time)) widget.SetOrigin(plane.GetOrigin()) widget.SetNormal(plane.GetNormal()) text_actor.SetInput("Origin: (0, 0, 0)\nNormal: (0, 0, %.5f)" % plane.GetNormal()[2]) render_window.Render() # 创建一个交互器并启动事件循环 interactor = vtk.vtkRenderWindowInteractor() widget.SetInteractor(interactor) widget.On() interactor.AddObserver("TimerEvent", lambda obj, ev: update_plane(obj.GetEventId() / 100.0)) interactor.CreateRepeatingTimer(10) interactor.Initialize() interactor.Start() ``` 在这个代码中,我们先定义了一个函数 `calc_z`,它接受一个时间参数,返回一个小的数乘以 `math.exp(-12)`,这个数就是平面法向量的第三个分量。 然后,我们创建了一个 `vtkPlane` 对象和一个 `vtkImplicitPlaneWidget2` 对象,并将它们的原点和法向量初始化为平面的原点和法向量。接着,我们创建了一个平面的 `vtkActor` 对象,并将其添加到一个 `vtkRenderer` 对象中,最后将这个 `vtkRenderer` 对象添加到一个 `vtkRenderWindow` 对象中。 我们还创建了一个文本 `vtkTextActor` 对象来显示平面的原点和法线,并将其添加到 `vtkRenderer` 对象中。 最后,我们定义了一个函数 `update_plane`,它接受一个时间参数,更新平面的法向量和原点,并更新文本 `vtkTextActor` 对象的内容。然后我们将这个函数绑定到交互器的 `TimerEvent` 事件上,并启动事件循环。在事件循环中,我们使用 `vtkImplicitPlaneWidget2` 对象来交互地改变平面的法向量和原点,并实时更新显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值