mysql 存储过程 into 赋值问题
SELECT cdaytime INTO tcdaytime,uid INTO tcuid FROM sz_app_daylogin AS d WHERE uid=iuid;
为什么在一个 SELECT 里面 into 2此赋值就出错
错误信息
-------------
Undeclared variable: uid
第二个问题错误信息
-------------------------
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'begin
update sz_app_daylogin set cnum=cnum+1,cdaytime=tcdaytime where uid=iui' at line 11
以下是关于这个错误的SQL
DELIMITER $$
CREATE
PROCEDURE `login_updatedaylogin`(IN iuid INT,IN tnowtime INT,IN righttime INT)
BEGIN
DECLARE tcdaytime INT DEFAULT 0;
DECLARE tcuid INT DEFAULT 0;
SELECT cdaytime INTO tcdaytime FROM sz_app_daylogin AS d WHERE d.uid=iuid;
SELECT d.uid INTO tcuid FROM sz_app_daylogin AS d WHERE d.uid=iuid;
IF tcuid>0 THEN
BEGIN
IF tcdaytime=righttime
BEGIN
UPDATE sz_app_daylogin SET cnum=cnum+1,cdaytime=tcdaytime WHERE uid=iuid;#连续加1
END;
ELSE
BEGIN
IF tcdaytime=tnowtime
BEGIN
#同一天登录,已经加1,忽略
END;
ELSE
BEGIN
UPDATE sz_app_daylogin SET cnum=0,cdaytime=tcdaytime WHERE uid=iuid;#不连续,清零
END;
END IF;
END
END IF;
END;
ELSE
BEGIN
INSERT INTO sz_app_daylogin(`uid`,`cdaytime`,`cnum`) VALUES (iuid,tnowtime,0);
END;
END IF;
END;
DELIMITER ;
相关推荐
mysql 存储过程判断重复的不插入数据
mysql存储过程中 下面是一个较常见的场景,判断表中某列是否存在某值,如果存在执行某操作 需要注意的是不能用if exists; exists可以在where后面或者在create object是使用,但是在if语句中不可以使用,只能用变通的方法。 delimiter $$ create procedure proc_add_book(in $bookName varchar(200),in $price float) begin declare $existsFlag int default 0; select bookId into $existsFlag from book
深入mysql创建自定义函数与存储过程的详解
一 创建自定义函数在使用mysql的过程中,mysql自带的函数可能不能完成我们的业务需求,这时就需要自定义函数,例如笔者在开发过程中遇到下面这个问题:mysql表结构如下 代码如下:DROP TABLE IF EXISTS `test`;CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `pic` varchar(50) NOT NULL, `hashcode` varchar(16) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREME
mysql创建存储过程实现往数据表中新增字段的方法分析
主要介绍了mysql创建存储过程实现往数据表中新增字段的方法,结合实例形式对比分析了通过存储过程新增字段相关操作技巧,需要的朋友可以参考下
mysql存储过程
mysql存储过程文档文件
细谈Mysql的存储过程和存储函数
存储函数与存储过程作用类同,不同的是存储过程只能使用CALL语句来调用存储过程,只能用输出变量返回值,而存储函数可以从语句外调用(即通过引用函数名),也能返回标量值。下面小编给大家详细讲一讲


