Files
nl-blogs/server/scripts/create_table.go

52 lines
1.3 KiB
Go
Raw Normal View History

2026-01-16 10:19:30 +08:00
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// MySQL connection info
username := "root"
password := "root"
hostname := "127.0.0.1"
port := "3306"
dbname := "nl_blog"
// Build DSN
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", username, password, hostname, port, dbname)
// Connect to MySQL
db, err := sql.Open("mysql", dsn)
if err != nil {
log.Fatalf("Failed to open database connection: %v", err)
}
defer db.Close()
// Create table query
createTableQuery := `
CREATE TABLE IF NOT EXISTS user_access_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT DEFAULT 0 COMMENT '用户ID未登录用户为0',
user_ip VARCHAR(45) NOT NULL COMMENT '用户IP地址',
user_location VARCHAR(100) COMMENT '用户归属地',
article_id INT NOT NULL COMMENT '访问的文章ID',
access_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '访问时间',
INDEX idx_user_id (user_id),
INDEX idx_article_id (article_id),
INDEX idx_access_time (access_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户访问记录表';
`
// Execute query
_, err = db.Exec(createTableQuery)
if err != nil {
log.Fatalf("Failed to create table: %v", err)
}
fmt.Println("Table 'user_access_logs' created successfully (or already exists).")
}