當我嘗試在資料庫表中插入資料時,它給了我錯誤“java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'null' for key 'login.PRIMARY'”。它復制輸入資料下方的空列。它給了我在線錯誤“stmt.executeUpdate(sql);”
<%@ 頁面匯入 = "java.sql. " %>
<%@ 頁面匯入 = "javax.sql. " %>
<%
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/?user=root";
String user = "root";
String pass = "root";
String firstname = request.getParameter("firstname");
String lastname = request.getParameter("lastname");
String email = request.getParameter("email");
String pass1 = request.getParameter("pass");
Connection con = DriverManager.getConnection(url, user, pass);
Statement stmt = con.createStatement();
String sql = "INSERT INTO facebook.login (firstname, lastname, email, password) VALUES('" firstname "','" lastname "','" email "','" pass1 "');";
stmt.executeUpdate(sql);
stmt.close();
con.close();
%>
uj5u.com熱心網友回復:
您沒有在插入陳述句中包含值login.PRIMARY列的值恰好是非重復列,并且可能已經有一個login.PRIMARY列的空值記錄,這就是遇到此錯誤的原因。
我建議您為陳述句中的login.PRIMARY列定義一個唯一值,INSERT或者更新您的表結構login.PRIMARY以使其自動遞增。
您可以參考以下鏈接了解如何在表中實作自動增量。
https://www.w3schools.com/sql/sql_autoincrement.asp
uj5u.com熱心網友回復:
問題是您正在嘗試使用重復的(表中已存在的鍵)主鍵插入。
您的表可能已接受“null”作為其中一行的 PK,現在再次編程嘗試將 null 設定為表中已存在的 PK。
您可以使用 PK 的自動增量,如果它是一個數字,否則在您的情況下在“電子郵件”bcz 上使用 PK 在現實生活場景中兩個電子郵件字串不能相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/400182.html
標籤:爪哇 sql sql-server 数据库
