簡體   English   中英

自動增量插入數據庫

[英]Inserting into database with auto increment

我需要使用准備好的語句將一些值存儲到表中。

我的表中有一列叫id,它設置為自動遞增。 我不需要用戶為此列提供任何輸入。

其他值都是從用戶那里獲得的。

編輯:有2個ID。 一種來自用戶,另一種由數據庫自動生成。 數據庫自動生成的一個是主鍵。

我這樣做對嗎?

謝謝。

准備的聲明:

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_details`(IN id varchar(45),IN username varchar(45),IN name varchar(45)) 

BEGIN insert into details (id,username,name) values (id ,username,name);

END

碼:

PreparedStatement preparedStatement = connect.prepareStatement("CALL INSERT_DETAILS(?,?,?)");
preparedStatement.setLong(1, userID);
preparedStatement.setString(2, username);
preparedStatement.setString(3, name);

preparedStatement .executeUpdate();

您只需在准備好的語句中省略自動生成的字段,因為MySQL會為您設置該值。 在您的示例中,您的參數名稱與表屬性名稱沖突。 我遵循的約定是在參數名稱前添加p_或類似名稱修飾。

准備好的語句應類似於以下內容:

DELIMITER $$
CREATE
  DEFINER=`root`@`localhost`
PROCEDURE `insert_details`(
  IN p_user_id VARCHAR(45),
  IN p_username VARCHAR(45),
  IN p_name VARCHAR(45))
BEGIN
  INSERT
    INTO details(id, username, name)
    VALUES (p_user_id, p_username, p_name);
END $$

從准備好的語句中刪除id字段。

因為它將與字段數據沖突,所以可能會發生問題。

暫無
暫無

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

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