首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从字段类型为INT的表中选择

从字段类型为INT的表中选择
EN

Stack Overflow用户
提问于 2014-10-08 15:55:52
回答 1查看 55关注 0票数 0

我有一个在other table上运行other table的触发器

代码语言:javascript
复制
BEGIN
  DECLARE test VARCHAR(3000);
  SELECT APPLICATION.APP_DATA into @test FROM APPLICATION WHERE  APP_NUMBER=1 LIMIT 1;
END

APP_NUMBER的类型是INT,当触发器运行时,@testNULL。为什么?

当我这么做

代码语言:javascript
复制
SELECT APPLICATION.APP_DATA 
  FROM APPLICATION 
 WHERE APP_NUMBER=1 LIMIT 1;` 

它返回一个正确的值!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-08 16:44:55

首先,MySQL支持两种不同的变量--局部变量和用户(会话)变量的类型。

现在,使用DECLARE定义一个局部变量test,然后尝试将一个值赋值给会话变量@test

我们完全不清楚你要实现什么和为什么,但下面是一个有用的例子

代码语言:javascript
复制
DELIMITER //
CREATE TRIGGER my_trigger
BEFORE INSERT ON table1
FOR EACH ROW 
BEGIN
  DECLARE test VARCHAR(32);
  SELECT app_data INTO test FROM application WHERE app_number = 1 LIMIT 1;
  SET NEW.data = test;
END
DELIMITER ;

这是SQLFiddle演示

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26261270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档