This repository has been archived on 2026-05-13. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
programA-3/db.go
2025-11-12 19:55:29 +08:00

31 lines
685 B
Go

package main
import (
"context"
"database/sql"
"log"
"os"
)
func openDB() (*sql.DB, error) {
dsn := os.Getenv("MYSQL_DSN")
if dsn == "" {
log.Fatal("MYSQL_DSN is empty!")
}
return sql.Open("mysql", dsn)
}
func migrate(ctx context.Context, db *sql.DB) error {
ddl := `
CREATE TABLE IF NOT EXISTS students (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
age INT NOT NULL,
email VARCHAR(255) NOT NULL UNIQUE,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;`
_, err := db.ExecContext(ctx, ddl)
return err
}