首页 > 数据库 > 国内数据库 > 从实践看金仓数据库与 MySQL 的兼容性
作者:Digital Observer(施嘉伟)
Oracle ACE Pro: Database
PostgreSQL ACE Partner
11年数据库行业经验,现主要从事数据库服务工作
拥有Oracle OCM、 KCM、DB2 10.1 Fundamentals、MySQL 8.0 OCP、WebLogic 12c OCA、KCP、PCTP、PCSD、 PGCM、OCI、PolarDB技术专家、达梦师资认证、数据安全咨询高级等认证
ITPUB认证专家、PolarDB开源社区技术顾问、HaloDB技术顾问、TiDB社区技术布道师、青学会MOP技术社区专家顾问、国内某高校企业实践指导教师
公众号:Digital Observer;CSDN:施嘉伟;ITPUB:sjw1933;墨天轮:Digital Observer;PGFans:施嘉伟。
为了验证金仓数据库(MySQL兼容版)和 MySQL 数据库在以下 DML 操作 和 数据查询 语句的兼容性,我通过以下测试来确保两者的兼容性:
INSERT IGNORE、
LIMIT 子句、
INSERT ON DUPLICATE KEY、
REPLACE INTO 和
LOAD DATA INFILE。GROUP BY WITH ROLLUP 来生成多级汇总行。INSERT IGNORE、
LIMIT、
ON DUPLICATE KEY、
REPLACE INTO 等),检查结果是否一致。GROUP BY WITH ROLLUP 查询,确保在两个数据库中返回的结果一致,并且汇总行的格式相同。
测试环境:
mysql版本:8.0.12
kingbase版本: V009R003C011
该语句用于插入数据,如果存在重复的唯一键,则忽略该操作。
-- 在 MySQL 和金仓数据库中执行相同的 `INSERT IGNORE` 语句INSERT IGNORE INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 5000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890');
kingbase执行结果:
--金仓INSERT IGNORE INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 5000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890') > WARNING: duplicate key value violates unique constraint "employees_pkey"DETAIL: Key (employee_id)=(1) already exists. > Affected rows: 0> 查询时间: 0.165s
mysql执行结果:
--mysqlINSERT IGNORE INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 5000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890') > Affected rows: 0> 查询时间: 0.161s
用于限制返回的记录数,通常在查询中使用,但在
UPDATE 和
DELETE 操作中也可以使用。
-- 在 MySQL 和金仓数据库中执行 `LIMIT` 子句的 `UPDATE` 语句UPDATE employeesSET salary = 6000.00WHERE department_id = 1LIMIT 2;
LIMIT 来限制更新的记录数)。kingbase执行结果:
UPDATE employeesSET salary = 6000.00WHERE department_id = 1LIMIT 2> Affected rows: 0> 查询时间: 0.043s
mysql执行结果:
UPDATE employeesSET salary = 6000.00WHERE department_id = 1LIMIT 2> Affected rows: 0> 查询时间: 0.040s
如果插入的数据的唯一键已经存在,则执行更新操作。
-- 在 MySQL 和金仓数据库中执行 `INSERT ON DUPLICATE KEY UPDATE` 语句INSERT INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 6000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890')ON DUPLICATE KEY UPDATE salary = 6000.00;
kingbase执行结果:
INSERT INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 6000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890')ON DUPLICATE KEY UPDATE salary = 6000.00> Affected rows: 1> 查询时间: 0.046s
mysql执行结果:
INSERT INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 6000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890')ON DUPLICATE KEY UPDATE salary = 6000.00> Affected rows: 0> 查询时间: 0.029s
如果插入的数据的唯一键已经存在,则删除现有记录并插入新记录。
-- 在 MySQL 和金仓数据库中执行 `REPLACE INTO` 语句REPLACE INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 6000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890');
REPLACE INTO 能够正常执行,即如果记录存在,则先删除再插入新的记录。kingbase执行结果:
REPLACE INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 6000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890') > ERROR: insert or update on table "employees" violates foreign key constraint "employees_department_id_fkey"DETAIL: Key (department_id)=(1) is not present in table "departments". > 查询时间: 0.047s--需要先关掉约束SET foreign_key_checks = 0;--重新执行REPLACE INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 6000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890') > Affected rows: 2> 查询时间: 0.137s--打开外键约束SET foreign_key_checks = 1;
mysql执行结果:
REPLACE INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 6000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890') > 1451 - Cannot delete or update a parent row: a foreign key constraint fails (`KKCP`.`employee_projects`, CONSTRAINT `employee_projects_ibfk_1` FOREIGN KEY (`employee_id`) REFERENCES `employees` (`employee_id`)) > 查询时间: 0.068s--需要先关掉约束SET GLOBAL FOREIGN_KEY_CHECKS = 0; --重新执行REPLACE INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number)VALUES (1, 'John Doe', 1, '2020-01-15', 6000.00, 'HR Manager', 'john.doe@example.com', '123-456-7890') > Affected rows: 2> 查询时间: 0.032s--打开外键约束SET GLOBAL FOREIGN_KEY_CHECKS = 1;
将数据从文件中加载到表中。
-- 在 MySQL 和金仓数据库中执行 `LOAD DATA INFILE` 语句LOAD DATA INFILE '/path/to/your/file.csv'INTO TABLE employeesFIELDS TERMINATED BY ','ENCLOSED BY '"'LINES TERMINATED BY '\n'(employee_id, name, department_id, hire_date, salary, job_title, email, phone_number);
kingbase执行结果:
-- 在 MySQL 和金仓数据库中执行 `LOAD DATA INFILE` 语句 LOAD DATA INFILE '/home/kingbase/file.csv' INTO TABLE employees FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';--返回结果> Affected rows: 1 > 查询时间: 0.100s--验证查询test=# select * from mysql.employees WHERE employee_id=49; employee_id | name | department_id | hire_date | salary | job_title | email | phone_number -------------+--------+---------------+------------+----------+-----------+------------------+-------------- 49 | 金小仓 | 187 | 2025-08-08 | 12000.00 | 测试专员 | test@hotmail.com | 13217166544 + | | | | | | | (1 row)
参考文档:https://bbs.kingbase.com.cn/kingbase-doc/v9.3.11/development/sql-plsql/sql/sql_statements/database_administration.html#load-data-infile
注意事项:这边的语法跟mysql略有不同,不能再命令里写具体的字段,直接load data
mysql执行结果:
--mysqlmysql> LOAD DATA INFILE '/data/mysql/files/file.csv' INTO TABLE employees FIELDS TERMINATED BY ',' ENCLOSED BY '"'LINES TERMINATED BY '\n' (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number);--返回结果Query OK, 1 row affected (0.01 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 0--验证查询mysql> select * from employees WHERE employee_id=49; +-------------+-----------+---------------+------------+----------+--------------+------------------+--------------+| employee_id | name | department_id | hire_date | salary | job_title | email | phone_number | +-------------+-----------+---------------+------------+----------+--------------+------------------+--------------+ | 49 | 金小仓 | 187 | 2025-08-08 | 12000.00 | 测试专员 | test@hotmail.com | 13217166544 +-------------+-----------+---------------+------------+----------+--------------+------------------+--------------+1 row in set (0.00 sec)
用于生成多级汇总行,在
GROUP BY 查询的基础上生成汇总行。
-- 在 MySQL 和金仓数据库中执行 `GROUP BY WITH ROLLUP` 语句SELECT department_id, COUNT(*) AS employee_count, SUM(salary) AS total_salaryFROM employeesGROUP BY department_id WITH ROLLUP;
GROUP BY WITH ROLLUP 时,能够正确生成多级汇总行,包含所有部门以及整体的汇总数据。kingbase执行结果:
SELECT department_id, COUNT(*) AS employee_count, SUM(salary) AS total_salaryFROM employeesGROUP BY department_id WITH ROLLUP> OK > 查询时间: 0.047s
mysql执行结果:
SELECT department_id, COUNT(*) AS employee_count, SUM(salary) AS total_salaryFROM employeesGROUP BY department_id WITH ROLLUP> OK > 查询时间: 0.069s
通过本次测试,我们发现金仓数据库与 MySQL 在基本的 DML 操作和数据查询语句上表现出较高的兼容性。虽然存在一些细微差异,特别是在外键约束处理和语法细节上,整体而言,金仓数据库能够有效支持 MySQL 的大多数常见操作。
为确保兼容性和稳定性,建议在实际应用中继续关注两者在特定业务场景下的表现,尤其是在复杂的数据操作和查询中可能出现的性能差异。同时,针对金仓数据库的特有功能和约束,用户可根据具体需求进行适当配置优化。
金仓数据库静默安装方式:
--创建软件安装目录mkdir -p /KingbaseES/V9 mkdir -p /data mkdir -p /backupchown -R kingbase:kingbase /KingbaseES/V9 chown -R kingbase:kingbase /datachown -R kingbase:kingbase /backupchown -R kingbase:kingbase /installchmod -R 755 /KingbaseES/V9 chmod -R 755 /backupchmod -R 700 /datachmod -R 775 /install--复制静默安装脚本silent.cfg参考如下:cd /mnt/setup/ cp silent.cfg /home/kingbase/silent.cfg chmod 775 silent.cfg -- vi /home/kingbase/silent.cfgKB_LICENSE_PATH=/install/license_34148/license_34148_0.dat USER_INSTALL_DIR=/KingbaseES/V9 USER_SELECTED_DATA_FOLDER=/data##其它参数自己修改--执行安装[kingbase@node ~]$ bash /mnt/setup.sh -i silent -f /home/kingbase/silent.cfg Now launch installer... .Complete. [root@node ~]# /KingbaseES/V9/install/script/root.shStarting KingbaseES V9: waiting for server to start..... doneserver started KingbaseES V9 started successfully--让环境变量生效vi .bash_profileexport KINGBASE_HOME=/KingbaseES/V9/Serverexport KINGBASE_DATA=/dataexport KINGBASE_PORT=54321export PATH=$PATH:$KINGBASE_HOME/bin--使用 root 用户执行服务注册脚本/KingbaseES/V9/install/script/root.sh 重启 reboot
测试数据:
-- 创建员工表 (employees)CREATE TABLE employees ( employee_id INT PRIMARY KEY, -- 员工ID,主键 name VARCHAR(100) NOT NULL, -- 员工姓名,不能为空 department_id INT, -- 部门ID,外键 hire_date DATE, -- 入职日期 salary DECIMAL(10, 2), -- 工资,保留两位小数 job_title VARCHAR(50), -- 工作职位 email VARCHAR(100), -- 电子邮件 phone_number VARCHAR(20), -- 电话号码 FOREIGN KEY (department_id) REFERENCES departments(department_id) -- 外键约束);-- 创建部门表 (departments)CREATE TABLE departments ( department_id INT PRIMARY KEY, -- 部门ID,主键 name VARCHAR(50) NOT NULL, -- 部门名称,不能为空 location VARCHAR(100) -- 部门所在位置);-- 创建项目表 (projects)CREATE TABLE projects ( project_id INT PRIMARY KEY, -- 项目ID,主键 project_name VARCHAR(100), -- 项目名称 start_date DATE, -- 项目开始日期 end_date DATE, -- 项目结束日期 budget DECIMAL(15, 2) -- 项目预算);-- 创建员工与项目关联表 (employee_projects)CREATE TABLE employee_projects ( employee_id INT, -- 员工ID,外键 project_id INT, -- 项目ID,外键 role VARCHAR(50), -- 员工在项目中的角色 hours_worked DECIMAL(5, 2), -- 工时 PRIMARY KEY (employee_id, project_id), -- 联合主键 FOREIGN KEY (employee_id) REFERENCES employees(employee_id), -- 外键约束 FOREIGN KEY (project_id) REFERENCES projects(project_id) -- 外键约束);-- 创建员工工资历史表 (salary_history)CREATE TABLE salary_history ( history_id INT PRIMARY KEY, -- 历史记录ID,主键 employee_id INT, -- 员工ID,外键 salary DECIMAL(10, 2), -- 工资 start_date DATE, -- 起始日期 end_date DATE, -- 结束日期 FOREIGN KEY (employee_id) REFERENCES employees(employee_id) -- 外键约束);SET foreign_key_checks = 1;truncate table employees;truncate table departments;truncate table projects;truncate table employee_projects;truncate table salary_history;drop TABLE employees;drop TABLE departments;drop TABLE projects;drop TABLE employee_projects;drop TABLE salary_history;-- 查询员工表SELECT * FROM employees;-- 查询部门表SELECT * FROM departments;-- 查询项目表SELECT * FROM projects;-- 查询员工与项目关联表SELECT * FROM employee_projects;-- 查询员工工资历史表SELECT * FROM salary_history;-- 插入部门数据 (departments)INSERT INTO departments (department_id, name, location) VALUES(101, '研发部', '上海'), (102, '市场部', '北京'), (103, '销售部', '广州'), (104, '人力资源部', '上海'), (105, '财务部', '上海'), (106, '运营部', '深圳'), (107, '法务部', '上海'), (108, '客户服务部', '武汉'), (109, '产品部', '杭州'), (110, '行政部', '上海'), (111, '技术支持部', '成都'), (112, '供应链部', '苏州'), (113, '质量控制部', '重庆'), (114, '公共关系部', '北京'), (115, '数据分析部', '上海');-- 插入员工数据 (employees)INSERT INTO employees (employee_id, name, department_id, hire_date, salary, job_title, email, phone_number) VALUES(1, '张三', 101, '2020-01-15', 8000.00, '软件工程师', 'zhangsan@example.com', '13812345678'), (2, '李四', 101, '2019-03-20', 9500.00, '高级软件工程师', 'lisi@example.com', '13987654321'), (3, '王五', 102, '2021-06-01', 7000.00, '市场专员', 'wangwu@example.com', '13700112233'), (4, '赵六', 103, '2018-11-10', 12000.00, '销售经理', 'zhaoliu@example.com', '13611223344'), (5, '钱七', 104, '2022-02-28', 6500.00, 'HR专员', 'qianqi@example.com', '13555667788'), (6, '孙八', 101, '2020-09-01', 8800.00, '测试工程师', 'sunba@example.com', '13344556677'), (7, '周九', 102, '2023-01-05', 7200.00, '市场经理', 'zhoujiu@example.com', '13277889900'), (8, '吴十', 105, '2019-07-12', 10000.00, '财务主管', 'wushi@example.com', '13122334455'), (9, '郑十一', 101, '2021-04-01', 8200.00, '前端开发', 'zheng11@example.com', '13012345670'), (10, '冯十二', 103, '2022-08-10', 9000.00, '销售代表', 'feng12@example.com', '13109876543'), (11, '陈十三', 106, '2023-03-15', 7800.00, '运营专员', 'chen13@example.com', '13223456789'), (12, '褚十四', 107, '2022-01-20', 11000.00, '法务顾问', 'chu14@example.com', '13334567890'), (13, '卫十五', 101, '2021-11-01', 9200.00, '全栈工程师', 'wei15@example.com', '13445678901'), (14, '蒋十六', 104, '2023-06-01', 6800.00, '招聘专员', 'jiang16@example.com', '13556789012'), (15, '沈十七', 105, '2020-05-01', 9800.00, '会计', 'shen17@example.com', '13667890123'), (16, '韩十八', 101, '2022-07-01', 8500.00, '数据分析师', 'han18@example.com', '13778901234'), (17, '杨十九', 102, '2021-09-10', 7500.00, '品牌专员', 'yang19@example.com', '13889012345'), (18, '朱二十', 103, '2023-02-01', 8800.00, '销售代表', 'zhu20@example.com', '13990123456'), (19, '秦二十一', 108, '2022-04-01', 6200.00, '客服专员', 'qin21@example.com', '13001234567'), (20, '尤二十二', 109, '2021-08-01', 10500.00, '产品经理', 'you22@example.com', '13112345678'), (21, '许二十三', 101, '2023-05-01', 7800.00, '后端开发', 'xu23@example.com', '13223456789'), (22, '何二十四', 102, '2022-10-01', 7100.00, '市场分析师', 'he24@example.com', '13334567890'), (23, '吕二十五', 103, '2021-01-01', 9800.00, '大客户销售', 'lv25@example.com', '13445678901'), (24, '施二十六', 104, '2023-09-01', 6000.00, '培训专员', 'shi26@example.com', '13556789012'), (25, '张二十七', 105, '2022-06-01', 9200.00, '高级会计', 'zhang27@example.com', '13667890123'), (26, '孔二十八', 106, '2021-03-01', 8100.00, '运营经理', 'kong28@example.com', '13778901234'), (27, '曹二十九', 107, '2023-04-01', 10800.00, '资深法务', 'cao29@example.com', '13889012345'), (28, '严三十', 109, '2022-11-01', 9900.00, 'UI/UX设计师', 'yan30@example.com', '13990123456'), (29, '华三十一', 101, '2021-02-01', 9000.00, 'DevOps工程师', 'hua31@example.com', '13011223344'), (30, '金三十二', 110, '2020-10-01', 6000.00, '行政助理', 'jin32@example.com', '13122334455'), (31, '陶三十三', 101, '2023-08-01', 7500.00, '初级软件工程师', 'tao33@example.com', '13233445566'), (32, '姜三十四', 102, '2024-01-01', 6800.00, '市场助理', 'jiang34@example.com', '13344556677'), (33, '戚三十五', 103, '2022-05-10', 8900.00, '销售主管', 'qi35@example.com', '13455667788'), (34, '谢三十六', 104, '2021-07-01', 7200.00, '薪酬福利专员', 'xie36@example.com', '13566778899'), (35, '邹三十七', 105, '2023-03-01', 8500.00, '成本会计', 'zou37@example.com', '13677889900'), (36, '喻三十八', 106, '2022-09-01', 7900.00, '内容运营', 'yu38@example.com', '13788990011'), (37, '柏三十九', 108, '2023-11-01', 6100.00, '客服主管', 'bai39@example.com', '13899001122'), (38, '水四十', 109, '2022-02-01', 11500.00, '高级产品经理', 'shui40@example.com', '13900112233'), (39, '窦四十一', 111, '2021-05-01', 7000.00, '技术支持工程师', 'dou41@example.com', '13011223344'), (40, '章四十二', 112, '2023-07-01', 9000.00, '采购经理', 'zhang42@example.com', '13122334455'), (41, '云四十三', 113, '2022-08-01', 8000.00, '质量工程师', 'yun43@example.com', '13233445566'), (42, '苏四十四', 114, '2024-02-01', 7500.00, '公关专员', 'su44@example.com', '13344556677'), (43, '潘四十五', 115, '2023-06-01', 9500.00, '资深数据分析师', 'pan45@example.com', '13455667788'), (44, '葛四十六', 101, '2022-04-01', 8700.00, '移动开发工程师', 'ge46@example.com', '13566778899'), (45, '奚四十七', 102, '2023-10-01', 6900.00, '市场助理', 'xi47@example.com', '13677889900'), (46, '范四十八', 103, '2021-03-01', 9300.00, '区域销售经理', 'fan48@example.com', '13788990011'), (47, '彭四十九', 104, '2024-03-01', 6300.00, '行政助理', 'peng49@example.com', '13899001122'), (48, '郎五十', 105, '2022-12-01', 8900.00, '税务专员', 'lang50@example.com', '13900112233');-- 插入项目数据 (projects)INSERT INTO projects (project_id, project_name, start_date, end_date, budget) VALUES(1001, '新产品研发', '2023-01-01', '2023-12-31', 500000.00), (1002, '市场推广活动', '2023-03-15', '2023-09-30', 150000.00), (1003, '内部管理系统升级', '2023-05-01', '2024-02-28', 300000.00), (1004, '销售渠道拓展', '2023-07-01', '2024-06-30', 200000.00), (1005, '大数据平台建设', '2023-09-01', '2024-08-31', 750000.00), (1006, '年度品牌宣传', '2024-01-01', '2024-06-30', 250000.00), (1007, '海外市场调研', '2024-03-01', '2024-05-31', 80000.00), (1008, '客户满意度提升计划', '2024-02-01', '2024-11-30', 120000.00), (1009, '移动APP开发', '2024-04-01', '2025-03-31', 600000.00), (1010, '企业文化建设', '2024-06-01', '2024-12-31', 50000.00), (1011, 'AI智能客服系统', '2024-07-01', '2025-06-30', 800000.00), (1012, '年度财务审计', '2024-01-01', '2024-03-31', 30000.00), (1013, '云计算平台迁移', '2024-08-01', '2025-07-31', 900000.00), (1014, '新员工入职培训系统', '2024-09-01', '2025-01-31', 70000.00), (1015, '国际市场拓展', '2024-10-01', '2025-09-30', 400000.00), (1016, '数据安全强化', '2024-11-01', '2025-05-31', 180000.00);-- 插入员工与项目关联数据 (employee_projects)INSERT INTO employee_projects (employee_id, project_id, role, hours_worked) VALUES(1, 1001, '后端开发', 160.00), (2, 1001, '项目负责人', 180.00), (6, 1001, '测试', 150.00), (3, 1002, '文案策划', 120.00), (7, 1002, '活动组织', 140.00), (1, 1003, '数据库设计', 80.00), (2, 1003, '系统架构', 70.00), (4, 1004, '渠道经理', 170.00), (9, 1001, '前端开发', 140.00), (13, 1001, '全栈开发', 175.00), (2, 1005, '项目负责人', 100.00), (9, 1005, '数据建模', 130.00), (13, 1005, '数据工程师', 120.00), (16, 1005, '数据分析', 140.00), (43, 1005, '资深数据分析', 160.00), (3, 1006, '营销策略', 90.00), (7, 1006, '公关协调', 110.00), (17, 1006, '品牌推广', 100.00), (42, 1006, '媒体关系', 80.00), (10, 1004, '销售支持', 160.00), (18, 1004, '销售代表', 150.00), (23, 1004, '销售顾问', 150.00), (11, 1007, '市场分析', 100.00), (21, 1009, '后端开发', 160.00), (20, 1009, '产品负责人', 170.00), (28, 1009, 'UI/UX设计', 150.00), (44, 1009, '移动开发', 145.00), (19, 1008, '客服代表', 130.00), (11, 1008, '运营支持', 80.00), (37, 1008, '客服主管', 120.00), (29, 1003, '部署维护', 100.00), (8, 1012, '审计协调', 60.00), (15, 1012, '财务分析', 70.00), (25, 1012, '高级会计', 80.00), (1, 1011, 'AI算法开发', 100.00), (21, 1011, '系统集成', 90.00), (20, 1011, '产品规划', 80.00), (38, 1011, '高级产品经理', 70.00), (31, 1013, '后端开发', 150.00), (29, 1013, '云架构师', 170.00), (14, 1014, '培训内容开发', 110.00), (24, 1014, '培训讲师', 90.00), (4, 1015, '国际销售策略', 160.00), (23, 1015, '国际客户经理', 150.00), (16, 1016, '安全审计', 130.00), (41, 1016, '质量保障', 120.00);-- 插入员工工资历史数据 (salary_history)INSERT INTO salary_history (history_id, employee_id, salary, start_date, end_date) VALUES(1, 1, 7500.00, '2020-01-15', '2021-12-31'), (2, 1, 8000.00, '2022-01-01', NULL), (3, 2, 9000.00, '2019-03-20', '2020-12-31'), (4, 2, 9500.00, '2021-01-01', NULL), (5, 3, 6500.00, '2021-06-01', '2022-12-31'), (6, 3, 7000.00, '2023-01-01', NULL), (7, 4, 11000.00, '2018-11-10', '2022-12-31'), (8, 4, 12000.00, '2023-01-01', NULL), (9, 5, 6000.00, '2022-02-28', '2023-12-31'), (10, 5, 6500.00, '2024-01-01', NULL), (11, 9, 7800.00, '2021-04-01', '2022-12-31'), (12, 9, 8200.00, '2023-01-01', NULL), (13, 10, 8500.00, '2022-08-10', '2023-12-31'), (14, 10, 9000.00, '2024-01-01', NULL), (15, 11, 7500.00, '2023-03-15', '2024-06-30'), (16, 11, 7800.00, '2024-07-01', NULL), (17, 12, 10500.00, '2022-01-20', '2023-12-31'), (18, 12, 11000.00, '2024-01-01', NULL), (19, 13, 8800.00, '2021-11-01', '2023-12-31'), (20, 13, 9200.00, '2024-01-01', NULL), (21, 14, 6500.00, '2023-06-01', NULL), (22, 15, 9500.00, '2020-05-01', '2023-12-31'), (23, 15, 9800.00, '2024-01-01', NULL), (24, 16, 8000.00, '2022-07-01', '2023-12-31'), (25, 16, 8500.00, '2024-01-01', NULL), (26, 17, 7000.00, '2021-09-10', '2023-12-31'), (27, 17, 7500.00, '2024-01-01', NULL), (28, 18, 8500.00, '2023-02-01', NULL), (29, 19, 6000.00, '2022-04-01', '2023-12-31'), (30, 19, 6200.00, '2024-01-01', NULL), (31, 20, 10000.00, '2021-08-01', '2023-12-31'), (32, 20, 10500.00, '2024-01-01', NULL), (33, 21, 7500.00, '2023-05-01', NULL), (34, 22, 6800.00, '2022-10-01', '2023-12-31'), (35, 22, 7100.00, '2024-01-01', NULL), (36, 23, 9500.00, '2021-01-01', '2023-12-31'), (37, 23, 9800.00, '2024-01-01', NULL), (38, 24, 5800.00, '2023-09-01', NULL), (39, 25, 8800.00, '2022-06-01', '2023-12-31'), (40, 25, 9200.00, '2024-01-01', NULL), (41, 26, 7800.00, '2021-03-01', '2023-12-31'), (42, 26, 8100.00, '2024-01-01', NULL), (43, 27, 10500.00, '2023-04-01', NULL), (44, 28, 9500.00, '2022-11-01', '2023-12-31'), (45, 28, 9900.00, '2024-01-01', NULL), (46, 29, 8500.00, '2021-02-01', '2023-12-31'), (47, 29, 9000.00, '2024-01-01', NULL), (48, 30, 5800.00, '2020-10-01', '2023-12-31'), (49, 30, 6000.00, '2024-01-01', NULL), (50, 31, 7000.00, '2023-08-01', NULL), (51, 32, 6500.00, '2024-01-01', NULL), (52, 33, 8500.00, '2022-05-10', '2023-12-31'), (53, 33, 8900.00, '2024-01-01', NULL), (54, 34, 7000.00, '2021-07-01', '2023-12-31'), (55, 34, 7200.00, '2024-01-01', NULL), (56, 35, 8000.00, '2023-03-01', NULL), (57, 36, 7500.00, '2022-09-01', '2023-12-31'), (58, 36, 7900.00, '2024-01-01', NULL), (59, 37, 6000.00, '2023-11-01', NULL), (60, 38, 11000.00, '2022-02-01', '2023-12-31'), (61, 38, 11500.00, '2024-01-01', NULL), (62, 39, 6800.00, '2021-05-01', '2023-12-31'), (63, 39, 7000.00, '2024-01-01', NULL), (64, 40, 8500.00, '2023-07-01', NULL), (65, 41, 7800.00, '2022-08-01', '2023-12-31'), (66, 41, 8000.00, '2024-01-01', NULL), (67, 42, 7200.00, '2024-02-01', NULL), (68, 43, 9000.00, '2023-06-01', '2023-12-31'), (69, 43, 9500.00, '2024-01-01', NULL), (70, 44, 8200.00, '2022-04-01', '2023-12-31'), (71, 44, 8700.00, '2024-01-01', NULL), (72, 45, 6600.00, '2023-10-01', NULL), (73, 46, 9000.00, '2021-03-01', '2023-12-31'), (74, 46, 9300.00, '2024-01-01', NULL), (75, 47, 6000.00, '2024-03-01', NULL), (76, 48, 8500.00, '2022-12-01', '2023-12-31'), (77, 48, 8900.00, '2024-01-01', NULL); 
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23825935/viewspace-3098011/ ,如需转载,请注明出处,否则将追究法律责任。