MySQL提供了Generated Key的功能,可以在插入數據時自動為主鍵字段(如自增長ID)生成唯一的值。
使用Generated Key,我們可以在插入數據時省略主鍵,MySQL會自動為其生成一個唯一的值。在Java中,我們可以通過Statement.RETURN_GENERATED_KEYS參數來獲取插入數據后生成的主鍵值。
String sql = "INSERT INTO users(name, age) VALUES('Tom', 20)"; PreparedStatement statement = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); int affectedRows = statement.executeUpdate(); if (affectedRows >0) { ResultSet rs = statement.getGeneratedKeys(); if (rs.next()) { int id = rs.getInt(1); // 獲取自動生成的主鍵值 System.out.println("Inserted ID: " + id); } }
通過Generated Key,我們可以避免手動為主鍵字段生成唯一的值,也可以確保主鍵的唯一性,同時提高了數據插入的效率。
需要注意的是,不是所有的數據庫都支持Generated Key功能,例如Oracle數據庫。在使用之前,需要先確認數據庫是否支持該功能。