【问题标题】:mysql trigger variablesmysql触发变量
【发布时间】:2012-09-19 21:12:38
【问题描述】:

在 MYSQL 中,如何将表 ftable 中的字段名称 fname 分配给触发器查询中的变量?

我知道mysql全局变量:@@
局部变量? @

但这就是正确的语法吗?

【问题讨论】:

    标签: mysql sql triggers


    【解决方案1】:

    您可以从选择中的字段右侧分配它;如果返回多行,它将获取最后选择的值。

    SELECT @tmp:=fvalue FROM ftable WHERE ...
    

    一个简单的SQLfiddle here

    【讨论】:

    • 实际上让我们假设我们不知道字段值是什么。我们只知道一个字段名。我的问题混淆了,让我解决它。假设它是字段名而不是字段值。该语句是否会导致变量 @tmp 的值为 fname,我可以在其余的触发器脚本中使用它?
    • @SofianeMerah 如果 fvalue 是字段名称,@tmp 将具有该字段的值。也就是说,如果ftable 只有一行fvalue 的字段值为1,则@tmp 将包含值1。
    • hmm 我尝试在INSERT INTO @tmp VALUES (8) 中使用@tmp 作为变量。但它没有用。 @tmp 被赋值为 table2。我收到架构创建错误。
    猜你喜欢
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 2021-03-13
    • 2010-09-24
    • 2012-09-29
    • 2017-12-18
    相关资源
    最近更新 更多