您好我正在尝试创建一个数据库,用于检查每个项目的文档编号。我试图将数据库服务器操作限制为存储过程。
编号系统
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
现在工作得很好。学会了如何正确使用分隔符并修复了一些显而易见的事情。