GolangでDBドライバー使ってコードからテーブルの存在有無を確認する方法です。SQLコマンド打てば簡単ですが、コードでチェックするというのはどうやるかしばらく悩みました。以下のstackoverflowから引用しました。
https://stackoverflow.com/questions/56915022/check-if-database-table-exists-using-golang
動作環境でimportしているライブラリ(DBアクセスで必要なのはsqlとsqlite3の2個)、go-sqlite3は使わないけどインポートだけはしないとコンパイルできません。
go-sqlite3のブランクインポートが必要な理由は、
https://maku77.github.io/p/kgzfwdt/
になります。
import (
"bufio"
"database/sql"
"encoding/json"
"errors"
"fmt"
_ "github.com/mattn/go-sqlite3"
"log"
"os"
"strconv"
"time"
"go.bug.st/serial"
"go.bug.st/serial/enumerator"
)
以下がテーブル存在をチェックしているコードになりますが、dateはフィアル名の一部ですね。戻りのerrorコードがnilならテーブル存在、それ以外ならテーブルが存在しないことになります。
// table exist check
cmd := "select*from tbl" + date
_, table_check := db.Query(cmd) // checked by using return code
if table_check != nil {
方法は別にSQLite限定ではなくて他のDBでも同じだろうと思います。
admin