mysql 插入返回id_go操作mysql
时间: 2023-07-11 10:36:18 浏览: 53
在MySQL中,可以使用以下语法执行插入操作并返回自增长ID:
```
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
SELECT LAST_INSERT_ID();
```
这里的 `table_name` 是表名,`column1, column2, column3, ...` 是要插入的列名,`value1, value2, value3, ...` 是要插入的值。`LAST_INSERT_ID()` 函数用于返回最后插入的行的自增长ID。
例如,如果要向 `user` 表插入一条数据,并返回该行的自增长ID,可以使用以下语法:
```
INSERT INTO user (name, age)
VALUES ('John', 25);
SELECT LAST_INSERT_ID();
```
注意,这里假设 `user` 表中有 `name` 和 `age` 两列,并且 `id` 列是自增长的。
相关问题
golang mysql 插入返回id_go操作mysql
在 Golang 中,可以使用 MySQL 驱动程序(如 `github.com/go-sql-driver/mysql`)连接 MySQL 数据库,并执行插入操作并返回自增长ID。以下是一个示例:
```go
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 连接 MySQL 数据库
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database")
if err != nil {
panic(err.Error())
}
defer db.Close()
// 执行插入操作并返回自增长ID
result, err := db.Exec("INSERT INTO user(name, age) VALUES(?, ?)", "John", 25)
if err != nil {
panic(err.Error())
}
id, err := result.LastInsertId()
if err != nil {
panic(err.Error())
}
fmt.Println("Inserted row id:", id)
}
```
在上面的示例中,首先使用 `sql.Open()` 函数连接 MySQL 数据库,并在插入数据时使用 `db.Exec()` 函数执行插入操作。然后,使用 `result.LastInsertId()` 函数返回最后插入的行的自增长ID。
golang 连接mysql
在 golang 中连接 MySQL 数据库需要使用第三方库,比如 `go-sql-driver/mysql`。以下是连接 MySQL 数据库的示例代码:
```go
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 数据库连接信息
user := "root"
password := "password"
host := "localhost"
port := "3306"
dbname := "test"
// 创建数据库连接
db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", user, password, host, port, dbname))
if err != nil {
panic(err.Error())
}
defer db.Close()
// 测试连接是否成功
err = db.Ping()
if err != nil {
panic(err.Error())
}
fmt.Println("Connected to MySQL database!")
}
```
上述代码中,`sql.Open` 函数用于创建一个数据库连接,参数一是驱动名称,参数二是连接字符串。连接字符串中需要包含用户名、密码、主机名、端口号和数据库名等信息。`db.Ping()` 函数用于测试连接是否成功。
连接成功后,可以使用 `db.Query` 或 `db.Exec` 函数执行 SQL 语句。例如:
```go
// 查询数据
rows, err := db.Query("SELECT * FROM users")
if err != nil {
panic(err.Error())
}
defer rows.Close()
for rows.Next() {
var id int
var name string
var age int
err := rows.Scan(&id, &name, &age)
if err != nil {
panic(err.Error())
}
fmt.Printf("ID: %d, Name: %s, Age: %d\n", id, name, age)
}
// 插入数据
result, err := db.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "Tom", 18)
if err != nil {
panic(err.Error())
}
id, err := result.LastInsertId()
if err != nil {
panic(err.Error())
}
fmt.Println("Last inserted ID:", id)
```