簡體   English   中英

Java和MySQL - Unique Key無法正常工作?

[英]Java & MySQL - Unique Key not working?

我正在使用MySQL Workbench,並將我的一個列指定為Unique Key。 當我檢查MySQL表時,它仍然為“users_name”輸入重復項。我還是MySQL / Java的新手,所以我確定我只是犯了一個愚蠢的錯誤。

System.out.print("Name: ");
String name = sc.nextLine();
System.out.print("Password: ");
String pass = sc.nextLine();

String SQL = String.format("INSERT INTO users (users_name, users_password) values('" + name + "','" + pass + "')");
PreparedStatement stmt = (PreparedStatement) connection.prepareStatement(SQL);
stmt.executeUpdate(SQL);

MySQL表定義:

CREATE  TABLE IF NOT EXISTS `mydb`.`users` (
`users_id` INT NOT NULL AUTO_INCREMENT ,
`users_name` VARCHAR(45) NULL ,
`users_password` VARCHAR(45) NULL ,
PRIMARY KEY (`users_id`) ,
UNIQUE INDEX `users_id_UNIQUE` (`users_id` ASC) ,
UNIQUE INDEX `users_name_UNIQUE` (`users_name` ASC) )
ENGINE = InnoDB

不是一個真正的答案,但非常有用的建議:

這是您應該如何使用PreparedStatement

String sql = "INSERT INTO users (users_name, users_password) values (?, ?);";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, name);
stmt.setString(2, pass);
stmt.executeUpdate();

要回答您的實際問題,我們需要查看表定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM