试图让基于 MySQL 的应用程序支持 MS SQL,我遇到了以下问题:
我将 MySQL 的 auto_increment 保留为无符号整数字段(各种大小),以便利用整个范围,因为我知道永远不会有负值。MS SQL 不支持所有整数类型的无符号属性,所以我必须在放弃一半的值范围或创建一些解决方法之间做出选择。
一种非常幼稚的方法是将一些代码放入数据库抽象代码或存储过程中,该过程在数据库端的负值和无符号范围的较大部分的值之间进行转换。这当然会弄乱排序,而且它也不适用于自动标识功能(或者它会以某种方式?)。
我现在想不出一个好的解决方法,有吗?还是我只是狂热,应该忘记大约一半的范围?
编辑:
@Mike Woodhouse:是的,我想你是对的。我的脑海中仍然有一个声音说,如果我优化它的利用率,也许我可以减小该字段的大小。但是,如果没有简单的方法可以做到这一点,则可能不值得担心。