【问题标题】:SQL query create duplicate rows?SQL查询创建重复行?
【发布时间】:2021-09-17 22:23:08
【问题描述】:

DB 已成功连接,但我运行代码,然后在 DB 中有重复的行 为什么?

public class MySQLTest 
{

    public static void main(String[] args) 
    {

        try {
            Connection con=DriverManager.getConnection(url, username, password);
            String sql = "INSERT INTO customer (firstname,lastname) VALUES (?,?)";
            PreparedStatement statement = con.prepareStatement(sql);
            statement.setString(1,"Name");
            statement.setString(2, "LastName");
            
            int rows = statement.executeUpdate();
            if (rows > 0 ) {
                System.out.println("A row is inserted");
                
            }
            statement.close();
            con.close();
        }


【问题讨论】:

  • 可能是因为您在测试时输入了多次名称。
  • 如果你想停止这种情况,那么你必须使表中的一列或两列唯一,但是你将不得不处理从数据库返回的重复错误在你的 Catch 块中,并决定如何处理它

标签: java mysql sql jdbc


【解决方案1】:

如果您使用代码作为测试,并且在表中运行超过 1 次 without a primary key,它将添加多个重复记录。

尝试将id 列添加为int autoincrement,并将NameLastName 两列都放入UniqueKey

当使用相同的值运行超过时间时,此更改将引发异常,并且您可以使用 try/catch 来捕获异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 2022-01-25
    • 2012-02-11
    • 1970-01-01
    • 2016-02-29
    相关资源
    最近更新 更多