Go でレコードの存在を確認し、存在しない場合は挿入する方法
Go プログラムでは、MySQL へのデータベース接続があります。データベースと、特定の名前の値に基づいてレコードの存在を確認するクエリ。レコードが存在しない場合は、データベースにレコードを挿入します。
これを実現する 1 つの方法は、条件付きクエリを使用してチェックと挿入を一度に実行することです。その方法は次のとおりです。
package main import ( "database/sql" "fmt" "github.com/gin-gonic/gin" ) func main() { router := gin.New() router.Use(gin.Logger()) router.Use(gin.Recovery()) db, err := sql.Open("mysql", "root:password@tcp(gpstest.cksiqniek8yk.ap-south-1.rds.amazonaws.com:3306)/tech") if err != nil { fmt.Print(err.Error()) } err = db.Ping() if err != nil { fmt.Print(err.Error()) } // Check if record exists var exists bool row := db.QueryRow("SELECT EXISTS(SELECT 1 FROM category WHERE name = 'construction')") if err := row.Scan(&exists); err != nil { fmt.Print(err.Error()) } // Insert record if not exists if !exists { if err := db.Exec("INSERT INTO category (name) VALUES ('construction')"); err != nil { fmt.Print(err.Error()) } } }
このコードでは、QueryRow 関数を使用して SELECT EXISTS クエリを実行し、結果をexists 変数に保存します。存在する値が false の場合、レコードが存在しないことを示し、Exec 関数を使用してレコードの挿入に進みます。
以上がレコードの存在を確認し、必要に応じて Go に挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。