Files
nl-blogs/server/scripts/create_table.go
2026-01-16 10:19:30 +08:00

52 lines
1.3 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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).")
}