mysql存储过程中对临时表游标的困惑.
刚接触mysql.以前总是弄sql server了.写了一个存储过程.密密麻麻的.可是总报错.劳烦大家帮我看看啊.谢谢了.有点长.不好意思啊.
我觉得问题可能是临时表与游标的声明顺序不对.
前面先声明了一些变量.
然后建立了一个临时表.
然后给临时表赋值.
然后声明一个对于临时表的游标.
这种顺序有错吗??
SQL code:
-- 设置分隔符
DELIMITER //
/*初始化*/
DROP PROCEDURE IF EXISTS useCursor //
/*建立 存储过程 create */
CREATE PROCEDURE useCursor(input_planGuid BIGINT )
BEGIN
-- 声明游标使用的变量----------
DECLARE nowID BIGINT;-- 本行自增id
DECLARE nowGuid BIGINT;-- 本行的guid,
DECLARE parentGuid BIGINT;-- 本行父级guid
DECLARE newIndex BIGINT;-- 要设置的本行的index
DECLARE preIndex BIGINT DEFAULT -1;-- 上一行设置的index.
DECLARE preParentGuid BIGINT DEFAULT -1;-- 上一行的父级guid
-- 声明临时表,并获取数据--------------------------------------------------------------------
-- 定义临时表 tb_tmp(自增主键,标题,拓展信息,原表主键ID)
DROP TEMPORARY TABLE IF EXISTS tb_tmp;
CREATE TEMPORARY TABLE tb_tmp (
id INT AUTO_INCREMENT PRIMARY KEY,
funcsOrder BIGINT,
ITEM_NO VARCHAR(200),
GUID BIGINT,
NAME VARCHAR(100) NULL,
ITEM_NO_INDEX BIGINT NULL,
PLAN_GUID BIGINT NULL,
PARENT_GUID BIGINT
);
#所有数据
INSERT INTO tb_tmp( funcsOrder,ITEM_NO,GU
相关问答:
如题 数据是BLOB类型 怎么才能修改其中的某些值
BLOB中存入的是什么内容?
假设字段memo为blob类型,在该字段的值前面增加字符串'add--'
则操作语句如下:
SQL code:
update tb_blog set memo=concat( ......
我对SQL SERVER和ACCESS比较熟,所以数据库的通用基础东西可以说都掌握的差不多了,我现在想要的就是以上两数据库的独特之处的介绍和应用介绍。
另外书最好对应最新版本 oracle是11g吧 10的也行;mysql是5.1吧
谢 ......
这个视频讲的很详细, 对新手非常有用, 基本上一看就懂
由于太大了(50m, 我只能上传20m), 我上传不了, 只好贴出下载地址
下载地址: http://ftel1.3800hk.com/0807/080720djxnzj.rar
好东西,下个看看
......
请高手指点,我对一张表查询后再更新,查询是子查询,报错:
You can't specify target table 'a_table' for update in from clause
完整SQL语句是
UPDATE a_table SET STATUS=0 WHERE ID=(SELECT MIN(ID) from a_tab ......
先上错误
无法联接数据库
java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java: ......