在MySQL中创建用户定义的函数来处理auto_increment

问题描述:

我想在MySQL中创建一个用户定义的函数,以便生成唯一的数字。由于MySQL的auto_increment功能只是将它的种子增加一个,所以我需要有这样一个函数来处理需要增加一个以上的字段。这里是我的SQL脚本:在MySQL中创建用户定义的函数来处理auto_increment

DELIMITER $$ 
CREATE FUNCTION `getUniqueID`(
    id_type CHAR(1) 
) RETURNS INT(10) 
BEGIN 
    DECLARE run INT(10); 

    START TRANSACTION; 

     SELECT unique_gen_id INTO @run FROM tbl_unique_seed WHERE id_type = @id_type; 
    UPDATE tbl_unique_seed SET unique_gen_id = (unique_gen_id + 1) WHERE id_type = @id_type; 

    COMMIT; 

    RETURN run; 
END$$ 
DELIMITER ; 

我没有太多的MySQL经验,但在SQL Server中创建这种功能非常简单。你会很高兴帮我找出解决这个问题的办法。目前,我正面临一些语法错误。最基本的与我的事务和select语句的语法有关。

+0

我曾尝试使用一个表来存储的种子并通过此功能增加它。但是,似乎我有一些语法错误,使我无法创建此函数。 – 2013-03-10 08:36:15

+0

编辑你的问题并说出你所尝试过的东西(你提到了语法错误,请确保包含这些错误)。 – 2013-03-10 09:12:12

请参阅该文档在这里:http://dev.mysql.com/doc/refman/5.0/en/replication-options-master.html#sysvar_auto_increment_increment

您可以更改auto_increment_increment的值,通常为1

+0

根据您提供的链接,_auto_increment_increment_用于设置整个会话或数据库的增量值,但我需要为我的表格设置可变增量值。 – 2013-03-09 06:17:57