Rumah > Artikel > pangkalan data > Menggunakan MySQL untuk mengurus metadata dalam bahasa Go
Dengan kemunculan era data besar, pengurusan data menjadi semakin penting. Apabila melakukan pemprosesan data, pengurusan metadata adalah bahagian penting. Metadata ialah data yang menerangkan data dan digunakan terutamanya untuk pengurusan data, penyelenggaraan dan pertanyaan. Sebagai sistem pangkalan data hubungan sumber terbuka, MySQL mempunyai pelbagai senario aplikasi Dalam bahasa Go, ia juga sangat mudah untuk menggunakan MySQL untuk mengurus metadata.
Artikel ini akan memperkenalkan cara menggunakan MySQL dalam bahasa Go untuk melaksanakan pengurusan metadata.
Apabila menggunakan MySQL, kita perlu memasang pemacu Go yang sepadan Pada masa ini, pemacu MySQL yang lebih biasa digunakan dalam bahasa Go ialah go-sql-driver/mysql
dan mysql-connector-go
. Dalam artikel ini kami akan menggunakan go-sql-driver/mysql
sebagai pemacu MySQL.
Kaedah pemasangan adalah seperti berikut:
go get github.com/go-sql-driver/mysql
Anda perlu menggunakan pakej database/sql
dan go-sql-driver/mysql
untuk menyambung ke pangkalan data MySQL. pangkalan data MySQL. Berikut ialah contoh penyambungan ke pangkalan data MySQL:
import ( "database/sql" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "用户名:密码@tcp(地址:端口)/数据库名") if err != nil { // 错误处理 } defer db.Close() }
Dalam contoh di atas, kami menggunakan kaedah sql.Open()
untuk menyambung ke pangkalan data MySQL, dengan mysql
ialah nama pemacu MySQL. Kita perlu menentukan nama pengguna, kata laluan, alamat, port dan nama pangkalan data untuk menyambung ke pangkalan data. Objek sql.Open()
yang dikembalikan oleh kaedah db
boleh digunakan untuk operasi seterusnya.
Dalam MySQL, kita boleh menggunakan pernyataan CREATE TABLE untuk mencipta jadual. Berikut ialah contoh mencipta jadual metadata:
func createMetadataTable(db *sql.DB) error { _, err := db.Exec(`CREATE TABLE IF NOT EXISTS metadata ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL, type VARCHAR(20) NOT NULL, size INT NOT NULL, create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`) if err != nil { return err } return nil }
Dalam kod di atas, kami menggunakan pernyataan CREATE TABLE untuk mencipta jadual bernama metadata
. Jadual mengandungi 5 medan: id, nama, jenis, saiz, create_time dan update_time. Antaranya, id
ialah medan autokenaikan, name
mewakili nama, type
mewakili jenis, size
mewakili saiz, create_time
mewakili masa penciptaan dan update_time
mewakili masa kemas kini . Enjin jadual ialah InnoDB dan set aksara ialah utf8mb4.
Anda boleh menggunakan kaedah db.Exec()
untuk memasukkan data baharu dalam jadual metadata. Berikut ialah contoh memasukkan data ke dalam jadual metadata:
func insertMetadata(db *sql.DB, name string, type string, size int) error { _, err := db.Exec(`INSERT INTO metadata (name, type, size) VALUES (?, ?, ?)`, name, type, size) if err != nil { return err } return nil }
Dalam kod di atas, kami menggunakan kaedah db.Exec()
untuk memasukkan sekeping data ke dalam jadual metadata. Gunakan ?
untuk mewakili ruang letak dan name
, type
dan size
akan menggantikan ?
secara bergilir-gilir.
Anda boleh menggunakan kaedah db.Query()
dan db.QueryRow()
untuk bertanya data daripada jadual metadata. Berikut ialah contoh pertanyaan data daripada jadual metadata:
func selectMetadata(db *sql.DB, id int) (*Metadata, error) { var metadata Metadata err := db.QueryRow(`SELECT * FROM metadata WHERE id=?`, id).Scan(&metadata.id, &metadata.name, &metadata.typ, &metadata.size, &metadata.createTime, &metadata.updateTime) if err != nil { if err == sql.ErrNoRows { return nil, nil } return nil, err } return &metadata, nil }
Dalam kod di atas, kami menggunakan kaedah db.QueryRow()
untuk menanyakan sekeping data daripada jadual metadata. Gunakan kaedah Scan() untuk memetakan hasil pertanyaan ke dalam struktur.
Anda boleh menggunakan kaedah db.Exec()
untuk mengemas kini data dalam jadual metadata. Berikut ialah contoh mengemas kini data:
func updateMetadata(db *sql.DB, id int, name string, typ string, size int) error { _, err := db.Exec(`UPDATE metadata SET name=?, type=?, size=? WHERE id=?`, name, typ, size, id) if err != nil { return err } return nil }
Dalam kod di atas, kami menggunakan kaedah db.Exec()
untuk mengemas kini sekeping data dalam jadual metadata.
Anda boleh menggunakan kaedah db.Exec()
untuk memadam data daripada jadual metadata. Berikut ialah contoh pemadaman data:
func deleteMetadata(db *sql.DB, id int) error { _, err := db.Exec(`DELETE FROM metadata WHERE id=?`, id) if err != nil { return err } return nil }
Dalam kod di atas, kami menggunakan kaedah db.Exec()
untuk memadamkan sekeping data dalam jadual metadata.
Artikel ini memperkenalkan cara menggunakan MySQL dalam bahasa Go untuk melaksanakan pengurusan metadata. Kami menggunakan pakej database/sql
dan pemacu go-sql-driver/mysql
untuk menyambung ke pangkalan data MySQL dan menggunakan pernyataan SQL untuk mencipta jadual metadata, memasukkan, bertanya, mengemas kini dan memadam data. Kaedah ini boleh digunakan dalam pelbagai senario pengurusan data untuk menjadikan pengurusan data lebih mudah dan cekap.
Atas ialah kandungan terperinci Menggunakan MySQL untuk mengurus metadata dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!