ITPub博客

首页 > 数据库 > 国内数据库 > 从实践看金仓数据库与 MySQL 的兼容性

从实践看金仓数据库与 MySQL 的兼容性

原创 国内数据库 作者:sjw1933 时间:2025-10-19 23:49:21 0 删除 编辑

作者: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 操作 和  数据查询 语句的兼容性,我通过以下测试来确保两者的兼容性:

  • DML 操作:包括  INSERT IGNORE、 LIMIT 子句、 INSERT ON DUPLICATE KEY、 REPLACE INTO 和  LOAD DATA INFILE。
  • 数据查询语句:包括  GROUP BY WITH ROLLUP 来生成多级汇总行。

1. 测试思路

  1. 执行相同的 DML 操作:
    • 确保在 MySQL 和金仓数据库中执行相同的 DML 操作(例如  INSERT IGNORE、 LIMIT、 ON DUPLICATE KEY、 REPLACE INTO 等),检查结果是否一致。
  2. 验证 LOAD DATA INFILE:
    • 检查两个数据库是否能够正确加载文件,并且数据在表中的插入顺序和内容一致。
  3. 执行数据查询:
    • 执行  GROUP BY WITH ROLLUP 查询,确保在两个数据库中返回的结果一致,并且汇总行的格式相同。

测试环境:
mysql版本:8.0.12
kingbase版本: V009R003C011

2. 数据操作语句兼容性测试(DML操作)

2.1 INSERT IGNORE语句

该语句用于插入数据,如果存在重复的唯一键,则忽略该操作。

-- 在 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

2.2 LIMIT 子句

用于限制返回的记录数,通常在查询中使用,但在  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

2.3 INSERT ON DUPLICATE KEY UPDATE 语句

如果插入的数据的唯一键已经存在,则执行更新操作。

-- 在 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

2.4 REPLACE INTO 语句

如果插入的数据的唯一键已经存在,则删除现有记录并插入新记录。

-- 在 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;

2.5 LOAD DATA INFILE 语句

将数据从文件中加载到表中。

-- 在 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)

3. 数据查询语句兼容性测试

3.1 GROUP BY WITH ROLLUP 语句

用于生成多级汇总行,在  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);
![hhh6.jpg](https://oss-emcsprod-public.modb.pro/image/editor/20250424-1915246539937689600_441010.jpg)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23825935/viewspace-3098011/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
11年数据库行业经验,Oracle ACE、PG ACE、OCM、IBM Certified DBA、MySQL OCP、PolarDB技术专家、KCP、PCTP、PCSD、达梦师资认证、PolarDB开源社区技术顾问、ITPUB认证专家、某高校外聘教师

注册时间:2019-05-05

  • 博文量
    295
  • 访问量
    300724