草庐IT

php - 如何防止自动递增跳过 mysql 数据库中的 ID 号?

好吧,假设我有一个包含两列的mysql数据库表,一列用于ID,另一列用于密码。如果我有三行数据并且id值从1变为3,我删除第3行然后创建另一行数据,我将在新创建的行上看到id=4而不是id=3。我知道这与自动增量值有关,但我想知道我是否可以在php文件中添加一些代码,自动重置所有ID号,以便您从id=1开始并上升到最后一个ID号删除一行后增加1?我的目标是创建一个表单,用户在其中输入密码,系统会将密码与数据库中的密码值进行匹配。如果匹配,密码匹配的行将被删除,身份证号码列将重新排序,这样就不会跳过任何身份证号码。更新:我通过将一个从1到4的随机数设置为一个变量来制作一个旋转横幅广告系统

mysql - MySQL 中用于多主复制的自动递增主键的替代方法

我指定的Web应用程序需要水平扩展,并且从一开始就需要一对MySQL服务器(可能在启动后很快增加到多个)。由于自动增量主键不合适,我想知道人们使用什么替代方案。带有日期的东西最有意义,但如果你深入到毫秒级别并假设一个三位数的服务器ID,那将是一个非常大的数字:sssyymmddhhmmssmicros或001110510143622123456现在-另外,您也许可以在开头使用另一个数字来简化前导零(也许是数据中心ID)。纪元时间缩短了它,但只是一点点。还有什么? 最佳答案 我认为您正在寻找的是UUID(通用唯一标识符)。在MySQL

mysql - 如何更新表以添加主键并使用递增的 ID 更新所有现有行?

我有一个表,其中包含我导入的20,000行数据,但我忘记在上面放置一个主键,以便每一行都有一个唯一的键。我希望第一行从ID1开始,一直递增到最后一行并在ID20000结束。如何使用单个查询更新所有行?我正在使用MySQL。已尝试使用PhpMyAdmin,但它不会这样做。 最佳答案 添加新的ID列后(暂时不要设置为主键,也不要开启自增)运行:SET@index=1;UPDATEtablenameSETID=(@index:=@index+1);这会在每个现有行上设置一个从1开始递增的ID值,从而解决在输入数据后尝试插入新的主键列时将面

MySQL 为什么在插入时我的自动递增不是从 1 开始?

为什么当我使用jdbc向我的数据库中插入时,我的表auto_increments被顶起。填充完全空表的示例:狗表DogIdDogName3Woofer4Kujo5Spike所有者表OwnerIdDogIDOwnerName63George74John85Sam期望的结果狗表DogIdDogName1Woofer2Kujo3Spike所有者表OwnerIdDogIDOwnerName11George22John33Sam实际代码:publicvoidinsertStuff(Somethingd){Connectioncon=null;try{Class.forName("com.mysq

java - Hibernate 实体跨表而不是每个表自动递增 id

目前我有三个表:Company、Group、Person。这三个表通过Company与Group一对多以及Group与Person一对多连接。在所有三个类(Company.java、Group.java、Person.java)中,我用这种方式编写了自动递增唯一标识:@Id@Column(name="id")@GeneratedValueprivateintid;然后我按以下顺序实例化了所有三个类:Company、Group、Person。将这些对象保存到我的数据库后,我注意到表中的ID有问题。显然,不是按1、2、3、4等顺序增加公司的ID;它在1,4,7,10...中增加。按照同样的

php - 在 mysql 数据库中添加前缀以自动递增

我的数据库中有表test1。它有一个自动递增的主ID“Id”。现在id的格式为1,2,3..。.是否可以将主ID存储为PNR1、PNR2、PNR3…….等等(自动递增)。 最佳答案 没有。在查询中添加前缀,或改用View。 关于php-在mysql数据库中添加前缀以自动递增,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5991148/

mysql int 列从 10000 开始自动递增 1

我有一个设置为auto_increment1的int列,但是,我不知道如何使该列从数字10000而不是1开始。谢谢!让我澄清一下,我想要1,但从10,000开始,所以我会得到10000、10001、10002、10003 最佳答案 尝试这样做:ALTERTABLEyour_tableAUTO_INCREMENT=10000; 关于mysqlint列从10000开始自动递增1,我们在StackOverflow上找到一个类似的问题: https://stackov

mysql - 如何为mysql中的特定表自动递增2

我有2个表order_retailer和order_customer他们都有自动递增的主键order_id为了在整个系统中保持订单ID唯一,我希望order_retailer的id仅为偶数,而order_customer的id为奇数。为此,我必须将自动增量的增量值设置为2。是否可以在mysql中以表方式设置它。我不想要php解决方案。如果有命令/查询将特定表的自动递增类次设置为2,请告诉我。我也不想更改服务器变量auto_increment_increment或auto_increment_offset或任何其他服务器变量 最佳答案

mysql - 使用自动递增 id 或 sha1 哈希的主键 mysql?

我可以将自动递增id字段作为我的主键或sha1哈希。我应该选择哪个?哪个在性能方面会更好? 最佳答案 在一些应用程序驱动的情况下,您希望使用全局唯一ID(UUID/GUID):您希望(或正在)使用分片策略来扩展写入。您不希望分片节点复制键。您希望能够安全地将数据从一个节点传输到另一个保留key。如果您想保持外键关系完整,这一点至关重要。您的应用程序还用于离线(家庭销售、家庭维修等),离线应用程序会定期同步与“真理之源”。您希望这些离线key是唯一的,而无需进行远程调用。否则,由您提出一种策略来重组键和关系的方式。使用自动增量策略并根

java - 多个数据库的 Hibernate 自动递增字段

我有一个Java对象,它有一个字段需要在数据库中自动递增。该字段不是主键,只是一个需要自增的字段。我的问题是在执行session.save(Object)之前我需要在我的Java对象中设置这个字段的值是多少?我必须将它设置为NULL吗?Hibernate映射将如何查找该字段?这就是我所拥有的,但它不起作用:应用程序还需要同时支持MySQL和SQLServer。提前致谢。 最佳答案 我会尽量保持简单,只用insert=false,update=false属性标记该属性。在将@Generated批注与命名查询一起使用之前,我遇到了麻烦,