如何在MySQL中创建一个存储过程来选择数据并插入新值?

时间:2015-12-06 22:27:13

标签: mysql variables stored-procedures parameters max

您好我正在尝试创建一个数据库,用于检查每个项目的文档编号。我试图将数据库服务器操作限制为存储过程。

编号系统

XXXX-YY-ZZZZ

XXXX是工作号码 YY是文档类型表引用 ZZZZ是文档特定编号,每个作业中每种类型的编号从1开始递增...

由于编号系统,我无法使用自动递增的列...这样会很好......我必须为每个文档类型生成一个表,对于每个作业...除非有人看到任何内容我不要?我对此非常陌生,所以任何帮助都会受到赞赏。

以下是我的手术所遇到的问题。

DELIMITER $$ DROP PROCEDURE IF EXISTS ADD_NEW_DOC$$ CREATE DEFINER=RMDNA@localhost PROCEDURE ADD_NEW_DOC(IN in_job INT, IN in_type VARCHAR(2), IN in_name VARCHAR(32), IN in_desc VARCHAR(512)) BEGIN SELECT MAX(doc_id) INTO @highnum FROM Doc_Entries WHERE job_id = in_job AND doc_type_ID = in_type$$ IF @highnum = null THEN SET @newnum = 1$$ ELSE SET @newnum = @highnum + 1$$ END IF$$ insert into Doc_Entries (job_id, doc_type_ID, doc_id, doc_name, doc_desc) values (in_job, in_type, @newnum, in_name, in_desc)$$ SELECT @newnum$$ END$$ DELIMITER ;

我得到的错误是:

  

1064 - 您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第2行

更新:

我的尝试已经完善...... ADD_NEW_DOC

现在工作得很好。学会了如何正确使用分隔符并修复了一些显而易见的事情。

0 个答案:

没有答案