Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 增加值1_Java_Mysql_Jdbc - Fatal编程技术网

Java 增加值1

Java 增加值1,java,mysql,jdbc,Java,Mysql,Jdbc,我正在创建一个带有后端数据库的web应用程序。该项目是一个网站,允许用户投票给将赢得奖杯的团队。用户将输入一个用户id、全名、居民和选定的团队,即团队id 一旦用户信息存储在数据库中,我希望某个团队的票数总和为1。例如,用户在“fan”表中输入“2”作为所选团队。在“团队”表中,“投票”列将汇总所选团队的“2”金额。因此,“投票”列将计算所选团队中“2”的数量,并将其放入“投票”中 我遇到的问题是我遇到了一个我不知道如何修复的错误 java.sql.SQLIntegrityConstraint

我正在创建一个带有后端数据库的web应用程序。该项目是一个网站,允许用户投票给将赢得奖杯的团队。用户将输入一个用户id、全名、居民和选定的团队,即团队id

一旦用户信息存储在数据库中,我希望某个团队的票数总和为1。例如,用户在“fan”表中输入“2”作为所选团队。在“团队”表中,“投票”列将汇总所选团队的“2”金额。因此,“投票”列将计算所选团队中“2”的数量,并将其放入“投票”中

我遇到的问题是我遇到了一个我不知道如何修复的错误


java.sql.SQLIntegrityConstraintViolationException:该语句被中止,因为它会在由“FAN”上定义的“PK\u USER”标识的唯一或主键约束或唯一索引中导致重复键值。
这意味着您正试图在FAN表中插入已经存在的用户id,因此存在主键约束冲突

假设风扇表中有下一条记录:

User_id    User_name   Resident   Selected_team

1          "Andrew"    "England"     "Chelsea"
如果要尝试执行以下查询:

INSERT INTO Fan(user_id, user_name, resident, selected_team) VALUES (1, 'Dany', 'Ukraine', 'Manchester United');

您将获得
java.sql.SQLIntegrityConstraintViolationException:
,因为用户id应该是唯一的(没有重复的值,这有助于区分表中的每一行,因为您有
约束PK\u用户主键(用户id)
),并且您现在有一个用户id为1的记录。

当您尝试插入到FAN时,您没有设置用户id,或者将其设置为数据库中另一个风扇记录已使用的值

您已经将UserID列定义为主键,这意味着该列中的值必须是唯一的-主键唯一地标识数据库中的一行

您不会说您正在使用哪种类型的数据库,但是获取这些唯一id的更好策略是允许数据库自动为您分配它们。这是一个mySQL示例


如果采用这种方法,则不会在insert语句中指定用户ID,只允许数据库为您处理它。如果您能够做到这一点,那么(在我看来)这是将Unique id分配给行的最简单、最安全的方法。

这意味着您试图在Fan表中插入已经存在的用户id,因此存在主键约束冲突。根据我所能做的,上面显示的错误不可能是执行以下代码的结果
connection.prepareStatement(“更新团队集投票数=投票数+1”+”,其中团队ID=“+getTeamID())如果stacktrace引导您认为这是导致问题的原因,那么我认为您运行的代码版本与源代码不同步。尝试清理整个项目,重建和重新部署风扇表,使其能够接受数据。我没有什么不对劲,实际上是商店的粉丝。当我使用此代码addEntry=connection.prepareStatement(“更新团队集投票数=投票数+1”+”其中团队ID=“+getTeamID()”)时,出现了问题;它将数据添加到FAN中,但不更新表团队。