UVM config_db机制避坑指南:从set/get参数到跨层次设置的优先级实战解析
2026/5/7 1:51:27
1 student表student表的 MySQL 创建语句,包含建表 + 插入示例数据,你可以直接复制到 Navicat 里运行:
sql
-- 1. 创建学生信息表 CREATE TABLE student ( name VARCHAR(50) NOT NULL COMMENT '姓名', code VARCHAR(10) PRIMARY KEY COMMENT '学号' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表'; -- 2. 插入表中的数据 INSERT INTO student (name, code) VALUES ('张三', '001'), ('李四', '002'), ('马五', '003'), ('甲六', '004');code设为主键,确保学号唯一且非空,符合业务逻辑。utf8mb4,可以兼容所有中文和特殊字符。COMMENT注释,方便后续维护。你直接在 Navicat 的「新建查询」里粘贴这段 SQL,点击运行就能建好表并插入数据了。
exam表exam表的完整 MySQL 建表语句,包含建表 + 插入数据,和你之前的student表可以完美关联起来:
sql
-- 1. 创建考试信息表 exam CREATE TABLE exam ( code VARCHAR(10) NOT NULL COMMENT '学号', subject VARCHAR(20) NOT NULL COMMENT '学科', score INT NOT NULL COMMENT '成绩', -- 复合主键:学号 + 学科,保证同一个学生同一门课不会有重复记录 PRIMARY KEY (code, subject), -- 外键关联 student 表的学号,保证数据一致性 FOREIGN KEY (code) REFERENCES student(code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='考试信息表'; -- 2. 插入表中的数据 INSERT INTO exam (code, subject, score) VALUES ('001', '数学', 80), ('002', '数学', 75), ('001', '语文', 90), ('002', '语文', 80), ('001', '英语', 90), ('002', '英语', 85), ('003', '英语', 80), ('004', '英语', 70);PRIMARY KEY (code, subject)保证了「同一个学生同一门学科只能有一条成绩记录」,避免重复数据。FOREIGN KEY (code) REFERENCES student(code)把exam表和你之前创建的student表关联起来,保证只有student表里存在的学号才能插入成绩,避免脏数据。score用INT类型,因为成绩是整数,且范围合理。subject用VARCHAR(20)足够存储常见的学科名称。student表已经创建并插入了数据(否则外键会报错)。Test数据库,就能看到exam表了。