一、问题描述
将Excel的数据导入数据库中,遇到乱码问题,如下:

二、解决方法
1、先将excel另存为CSV格式(后缀为.csv)
2、以txt方式打开刚刚的csv表,点击左上角的"文件"选择"另存为",在弹窗中可以修改编码为UTF-8,点击保存

3、打开数据库,右键数据表,选择"导入数据"

4、按下图操作:双击-点击,然后在弹窗中选择刚刚保存的文件

5、配置对应的字段,注意目标字段为数据库表的字段,一般是英文名称


6、最终数据转化完成,可以在数据库这查到数据。如果出现

**注意:**如果出现下图的问题,一定要检查文件是不是带空行!!!可以用txt方式打开文件,如果数据下面出现带有"的行,得回到源表将其删掉,再重新操作。

三、整体流程
(从创建数据表到数据导入数据库)
1、在数据库中创建数据表,注意如果全部执行出错,可以改为一分句一分句地执行
-- 创建排班数据库
CREATE DATABASE IF NOT EXISTS production_db DEFAULT CHARACTER SET utf8mb4;
USE production_db;
-- 周次表
CREATE TABLE IF NOT EXISTS week_info (
id INT PRIMARY KEY AUTO_INCREMENT,
week_name VARCHAR(50) NOT NULL COMMENT '如3月第1周',
start_date DATE NOT NULL COMMENT '周开始日期',
end_date DATE NOT NULL COMMENT '周结束日期',
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 生产排班表
CREATE TABLE IF NOT EXISTS production_schedule (
id INT PRIMARY KEY AUTO_INCREMENT,
line_name VARCHAR(100) NOT NULL COMMENT '生产线名称',
shift_type VARCHAR(20) NOT NULL COMMENT '班次(白班/中班)',
shift_time VARCHAR(100) NOT NULL COMMENT '排班时间段',
leader VARCHAR(50) COMMENT '带班人',
schedule_date DATE NOT NULL COMMENT '排班日期',
week_id INT COMMENT '关联周次表ID',
FOREIGN KEY (week_id) REFERENCES week_info(id)
);
-- 切换到排班数据库
USE production_db;
-- 给排班表加版本/生效字段(只执行一次)
ALTER TABLE production_schedule
ADD COLUMN version INT DEFAULT 1 COMMENT '版本号:从1开始递增', -- 版本号,每次调整+1
ADD COLUMN effective_time DATETIME DEFAULT NOW() COMMENT '生效时间', -- 该版本开始生效的时间
ADD COLUMN invalid_time DATETIME COMMENT '失效时间:NULL表示当前有效', -- 该版本失效时间
ADD COLUMN adjust_reason VARCHAR(200) COMMENT '调整原因(可选)'; -- 记录为什么调整(方便追溯)
执行后,创建了production_schedule生产排班表 和week_info 周次信息表 如下

2、按照上面第二节的步骤,将excel的数据导入数据库中,此处不再赘述
3、给排班数据关联周次(week_id)
-- 插入2026年3月第2周
INSERT INTO week_info (week_name, start_date, end_date)
VALUES ('2026年3月第2周', '2026-03-10', '2026-03-16');
-- 把3月10-16日的所有排班,关联到周次ID=1
UPDATE production_schedule
SET week_id = 1
WHERE schedule_date BETWEEN '2026-03-10' AND '2026-03-16';

4、对接 Coze 智能体(最终目标)
在 Coze 里添加 MySQL 数据源,填本地信息:
地址:localhost(或你的本地 IP)
端口:3306
账号:root
密码:你的 MySQL 密码
数据库:production_db
测试连接成功。
5、创建自定义 SQL 查询工具,预设通用查询 SQL
SELECT line_name, shift_type, shift_time, leader, schedule_date
FROM production_schedule
WHERE schedule_date = '#{date}' AND line_name LIKE '%#{line_name}%'
AND invalid_time IS NULL;
6、测试问答