Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在MySQL中进行循环,将列设置为手动增量?_Java_Php_Mysql - Fatal编程技术网

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

Java 如何在MySQL中进行循环,将列设置为手动增量?,java,php,mysql,Java,Php,Mysql,我有一个SQL数据库,想知道如何在phpMyAdmin中创建循环。我想将表的第一列设置为手动递增。我的意思是我想在所有行中运行一个循环,它将在第一列中设置整数值。它会将数字设置为:1,2,3,4我不想将列设置为自动增量。请容忍我,我真的不想用这个。这是因为auto_increment的计数器不重用以前的数字 我正在制作一个Java程序,它将从表中插入、更新和删除。我有一个Swing类,它为这3个查询中的每一个都提供了按钮。我想在每次按下这些按钮时执行这个循环。所以每次我按下这些按钮中的任何一个,

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

我正在制作一个Java程序,它将从表中插入、更新和删除。我有一个Swing类,它为这3个查询中的每一个都提供了按钮。我想在每次按下这些按钮时执行这个循环。所以每次我按下这些按钮中的任何一个,SQL循环都会运行,它会将第一列中的所有值设置为1,2,3,4,。。。不管表格其余部分的数据如何

它应该覆盖可能已经存在的任何数据值(以防万一)。这意味着每次我按下按钮,它都会从一开始就运行循环,即使一些数字可能已经按顺序排列

我猜我需要为每个按钮将其放入
ActionListener
。这样,当单击按钮时,它可以运行。我还需要知道如何使用
.executeQuery(“TheSqlLoopGoesher”)。我现在能想到的问题是,既然SQL循环将有代码块,我如何将其放在两个语音标记之间

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

我是SQL编程新手,因此请解释您用于解决此问题的所有语法/代码。另外,请随时询问我可能没有包括的任何澄清。我将在中编辑它们

提前感谢

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

所以,如果您希望它在开始时没有数据,那么truncate table会删除所有内容,并为您将AI值重置回1。因此,下次插入时,您的位置为1。所以,可能是因为你说“覆盖任何东西,如果它存在”,你的意思是你不关心你以前的数据开始重新循环。或者,或者,您的意思是,如果未触摸之前的数据,则会保留这些数据(触摸1、3和9)

请注意,对于FK关系中的父表,父表不能对其运行
truncate table
。使其发挥作用的等效方法是:

delete from myTableA;
alter table myTableA AUTO_INCREMENT=1; 
当然,上面的FK说明这样做不会违反子表行的约束

另一个我不喜欢的答案是。也许射杀信使吧。

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

所以,如果您希望它在开始时没有数据,那么truncate table会删除所有内容,并为您将AI值重置回1。因此,下次插入时,您的位置为1。所以,可能是因为你说“覆盖任何东西,如果它存在”,你的意思是你不关心你以前的数据开始重新循环。或者,或者,您的意思是,如果未触摸之前的数据,则会保留这些数据(触摸1、3和9)

请注意,对于FK关系中的父表,父表不能对其运行
truncate table
。使其发挥作用的等效方法是:

delete from myTableA;
alter table myTableA AUTO_INCREMENT=1; 
当然,上面的FK说明这样做不会违反子表行的约束


另一个我不喜欢的答案是。拍摄messenger吧。

phpmyadmin是mysql的管理界面。它不是一个数据库,您也不会在其中“创建循环”。您可以编写sql,它将被执行到mysql。phpmyadmin只是处理输入和显示结果的中间人。你为什么不想要一个自动增量?这正是您想要的。递增数字列中的空白是正常的,尝试填充每个值是徒劳的。自动递增确实是这里的逻辑选择。@MarcB那么如果没有办法运行循环呢?我不想使用自动增量,因为当我们
删除
然后
插入
时,它会留下间隙。我不想要这些间隙,因为我需要使用命令:
WHERE id='2'
。但是如果我运行这个查询,并且id=2的记录之前已经被删除,那么下一条记录将是id=3。如果id为2,则不会有记录。我想要一些代码,每次运行
INSERT
命令时都可以通过sql运行,这样在插入后,循环会将id列设置为递增的数字。@SeanLange我的数据库和表相对较小。我可以承受时间效率的损失,因为我的表不会超过50行。是否有办法在每行中填写值?不应重复使用ID值。如果您需要找出下一个id,说明差距,那么使用类似于
select。。。其中id>$last\u used\u id order by id desc limit 1
phpmyadmin是mysql的一个管理接口。它不是一个数据库,您也不会在其中“创建循环”。您可以编写sql,它将被执行到mysql。phpmyadmin只是处理输入和显示结果的中间人。你为什么不想要一个自动增量?这正是你想要的