gpt4 book ai didi

mysql - 查找要插入的记录的主键

转载 作者:行者123 更新时间:2023-11-29 00:16:59 26 4
gpt4 key购买 nike

我有一个 mysql 数据库,其中的表包含以下字段:matchID、userID、puzzleID

其中 match ID 是主键,它已被设置为 auto increment

代码如下:

query = "INSERT INTO matches(UserID, PuzzleID) VALUES('" & UserID _
& "','" & puzzleID & "')"
da.InsertCommand = New MySqlCommand(query, conn)
Try
da.InsertCommand.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.Message)
exit sub
End Try

然后我需要获取新插入行的 MatchID 以进行下一步处理。

我的问题是:

当主键未显式声明时,是否可以获取插入语句主键

最佳答案

您可以将两个 sql 语句组合在一个命令中,并使用 ExecuteScalar 检索最后一个语句的结果

query = "INSERT INTO matches(UserID, PuzzleID) VALUES(@uid, @pid);" & _ 
"SELECT LAST_INSERT_ID();"
Dim cmd = New MySqlCommand(query, conn)
cmd.Parameters.AddWithValue("@uid", userID)
cmd.Parameters.AddWithValue("@pid", puzzleID)
Dim result = Convert.ToInt32(cmd.ExecuteScalar())

请注意,在向数据库后端提交命令时,您应该始终使用参数化查询。如果您使用字符串连接和用户输入构建命令文本,您将面临 SQL 注入(inject)和解析问题。

关于mysql - 查找要插入的记录的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22635819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com