package main

import (
	"database/sql"
	"fmt"
	"log"

	_ "github.com/go-sql-driver/mysql"
)

func main() {
	dsn := "root:123456@tcp(127.0.0.1:3306)/mybatis_learn"
	db, err := sql.Open("mysql", dsn)
	if err != nil {
		log.Fatalln("dsn错误", err)
	}
	err = db.Ping()
	if err != nil {
		log.Fatalln(err)
	}
	log.Println("数据库连接成功")
	_, err = db.Exec(`CREATE TABLE IF NOT EXISTS diners (
    diner_id INT AUTO_INCREMENT PRIMARY KEY,  -- 食客ID,主键,自增
    name VARCHAR(100) NOT NULL,               -- 食客姓名,不能为空
    phone_number VARCHAR(15),                 -- 联系电话
    email VARCHAR(100) UNIQUE,                -- 电子邮件,唯一
    registration_date DATE NOT NULL,          -- 注册日期,不能为空
    address VARCHAR(255),                     -- 地址
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 创建时间,默认为当前时间
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -- 更新时间,自动更新
);`)
	if err != nil {
		log.Fatalln("创建表失败")
	}
	log.Println("创建表成功")

	res, err := db.Exec(`INSERT INTO diners (name,phone_number,email,registration_date) values ("mikes","10085123213","meowrain@ssss.com",'2022-12-10');`)
	if err != nil {
		panic("插入失败")
	}
	insert_id, err := res.LastInsertId()
	if err != nil {
		panic(err)
	}
	fmt.Printf("插入成功,id: %d", insert_id)
	// conn, err := db.Conn(context.Background())
}