CREATE PROCEDURE sp_random(n integer) RETURNING INTEGER;
DEFINE GLOBAL seed DECIMAL(10) DEFAULT 1;
DEFINE d DECIMAL(20,0);
LET d = (seed * 1103515245) + 12345;
LET seed = d - 4294967296 * TRUNC(d / 4294967296);
RETURN MOD(TRUNC(seed / 65536), n);
END PROCEDURE;
这个随机函数我这样用select sp_random(100) from table,会返回100以内的随机值,可是我每次手工执行的时候都没有问题,定时执行或做成触发器就不行了,返回的总是固定值!怎么回事呢?
收起