0

私は MySQL Workbench を使用しており、列の 1 つを一意のキーとして割り当てています。MySQL テーブルをチェックすると、まだ "users_name" の重複が入力されています。

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
4

1 に答える 1

2

本当の答えではありませんが、非常に役立つアドバイス:

これはあなたがあなたの使用する方法です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();

実際の質問に答えるには、テーブル定義を確認する必要があります。

于 2013-03-03T02:01:41.447 に答える