数据库“自定义存储过程”超级难题,编写复杂计算
有一个表 table, 它只有一个字段,也是主键:
uid bigint
uid是一特殊类型的数据,它的取值只能为1,2,4,6,8……且不可重复(因此最多只能有64条记录)。
对该表进行 INSERT 时,由于uid是不可重复,又不能自动增长,我们必须指定它的值。但问题是如何确定uid值?
如果表中已经有(1,2,4),则uid可取8;
如果表中已经有(1,4),则uid可取2; // 为了利用有限的储存空间
方法1:在程序中实现的,检索所有的uid,并确定可用的数值。但是,由于它是主键,必须保证插入时没有重复!锁定表?还是利用编程同步?由于实际的运行中是分布式的计算,编程同步无效,只能是锁定表。(可惜我不知道怎么做)
方法2:编写储存过程,,但我不知道具体的算法。。
=================================================
高分征求解决方案!
uid bigint
uid是一特殊类型的数据,它的取值只能为1,2,4,6,8……且不可重复(因此最多只能有64条记录)。
对该表进行 INSERT 时,由于uid是不可重复,又不能自动增长,我们必须指定它的值。但问题是如何确定uid值?
如果表中已经有(1,2,4),则uid可取8;
如果表中已经有(1,4),则uid可取2; // 为了利用有限的储存空间
方法1:在程序中实现的,检索所有的uid,并确定可用的数值。但是,由于它是主键,必须保证插入时没有重复!锁定表?还是利用编程同步?由于实际的运行中是分布式的计算,编程同步无效,只能是锁定表。(可惜我不知道怎么做)
方法2:编写储存过程,,但我不知道具体的算法。。
=================================================
高分征求解决方案!
...全文
相关推荐
数据仓库日期维度表创建存储过程
该代码是关于创建数据仓库日期维度表的存储过程
从创建数据库到存储过程与用户自定义函数的小感
从创建数据库到存储过程与用户自定义函数的小感,深入的学习mysql
access数据库创建存储过程
access数据库创建存储过程,通过查询分析器创建查询完成“存储过程”
Oracle存储过程和自定义函数详解
概述 PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用。 相同点: 完成特定功能的程序 不同点:是否用return语句返回值。 举个例子: create or replace procedure PrintStudents(p_staffName in xgj_test.username%type) as cursor c_testData is select t.sal, t.comm from xgj_test t where t.username = p_staffName;
MySQL自定义函数和存储过程示例详解
主要给大家介绍了关于MySQL自定义函数和存储过程的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧


疑难问题
