mysql - 以编程方式控制 MySQL 中的主键范围
问题描述
我正在使用一个有 15 年历史的系统,其中“用户”表中的主键是用户 ID,由客户端持有并用于对我们的 PHP 脚本的请求。我知道这是一个坏主意,但事实就是如此。我期待用完 32 位范围内的主键值,因为客户端使用 32 位整数来存储此 UserID 值。
我的计划是重新发布一个可以处理 64 位 UserID 的新客户端,但是,我将始终使用 32 位客户端。
因此,我希望能够更新分配用户行的 PHP 脚本,以首先确定客户端是 32 位还是 64 位,然后根据答案从同一个表中的不同范围进行分配。
32 位客户端将需要分配未使用且介于 1 和 2^31 之间的 UserID 值。64 位客户端需要特别避免分配 1..2^31 范围内的 UserID 值,以免分配稀缺资源。
编写这两个 INSERT 查询以控制分配主键的范围的最佳方法是什么,同时仍确保每个查询都是唯一的?
我的强烈偏好是不要有两个单独的“用户”表,因为这会影响很多其他 PHP 代码。
谢谢您的帮助。
解决方案
推荐阅读
- perl - 循环遍历 2 个文件 perl
- html - VBA 嵌套帧错误处理
- javascript - 找不到相关命令
- java - 为什么这些导入错误?
- javascript - Javascript:在选项卡处于非活动状态时 setInterval 暂停和跳过
- angular - NativeScript - 通过 TabView-ng 中的选项卡过滤 ListView 数据
- javascript - 将对象绑定到单选按钮组时缺少功能和错误
- scala - Scala应用方法调用作为括号与隐式参数冲突
- excel - 带有用户窗体文本框的 VBA For 语句
- jquery - jQuery:删除标签但保留内容?