繁体   English   中英

如何在MySQL中进行循环以将列设置为手动增量?

[英]How to make loops in MySQL to set column as manual increment?

我有一个SQL数据库,想知道如何在phpMyAdmin中创建循环。 我想将表格的第一列设置为手动递增。 我的意思是我想对所有行进行循环,这将在第一列中设置整数值。 它将数字设置为:1,2,3,4,... 我不想将列设置为auto_increment 请忍受我,我真的不想使用这个。 这是因为auto_increment的计数器不会重复使用以前的数字。

我正在制作一个Java程序,它将从表中进行INSERTUPDATEDELETE 我有一个带有针对这3个查询中的每个按钮的Swing类。 我想在每次按下这些按钮中的任何一个时执行该循环。 因此,每当我按下这些按钮中的任何一个时,SQL循环都会运行,并且它将第一列中的所有值设置为1,2,3,4,...,而不管表中其余数据如何。

它应该覆盖可能已经存在的所有数据值(以防万一)。 因此,这意味着即使某些数字可能已经按顺序排列,每次按下按钮时,它也会从头开始运行循环。

我猜我需要将其放入每个按钮的ActionListener中。 这样一来,单击按钮后即可运行。 我还需要知道如何使用.executeQuery("theSQLLoopGoesHere"); 我现在可以想到的问题是,由于SQL循环将包含代码块,我如何将其放在两个语音标记之间?

我将MAMP 3与“客户端API库版本5.5.49”一起使用。

我是SQL编程的新手,所以请解释一下用于解决此问题的所有语法/代码。 另外,请随时要求我提供一些澄清。 我将对其进行编辑。

提前致谢!

也许您想truncate table 谁知道你到底想要什么。 至于差距,如果它们是由于该innodb引擎中的范围分配导致的循环机制而出现的,那么它们就是您的朋友。 如果以其他方式出现间隙(从删除中删除),那也很好,原因有十几种。 我想到的第一个是参照完整性。

因此,如果您希望刚开始时没有任何数据,那么请截断表以清除所有内容并将AI值重置为1。 因此,下次插入时,您的位置为1。所以,也许是因为您说“如果有的话就覆盖任何内容”,这意味着您不关心重新循环时开始的先前数据。 或者,或者,您的意思是如果不触摸将保留先前的数据(您触摸1、3和9)。

请注意,对于FK关系中的父表,父表不能对其运行truncate table 使它起作用的等效项是:

delete from myTableA;
alter table myTableA AUTO_INCREMENT=1; 

当然,上面带有FK的建议表明,没有任何子表行会违反此约束。

我的另一个不受欢迎的答案是在这里 射击信使。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM