有没有可以从数据库导出或导入对象的工具

时间:2019-03-07 06:50:05

标签: mysql database database-relations

我所指的对象与数据模型中的实体有关。

例如,这些是我数据库中的表:

-- ----------------------------
-- student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `student_no` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  `gender` tinyint(1) NOT NULL,
  `age` tinyint(3) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `student` VALUES ('1', '19001', 'John', '1', '13');
INSERT INTO `student` VALUES ('2', '19002', 'Mary', '2', '12');
INSERT INTO `student` VALUES ('3', '19003', 'Tom', '1', '13');

-- ----------------------------
-- course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `course` VALUES ('1', 'C1');
INSERT INTO `course` VALUES ('2', 'C2');
INSERT INTO `course` VALUES ('3', 'C3');

-- ----------------------------
-- score
-- ----------------------------
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `course_id` int(11) NOT NULL,
  `student_id` int(11) NOT NULL,
  `score` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `score` VALUES ('1', '1', '1', '100');
INSERT INTO `score` VALUES ('2', '1', '2', '96');
INSERT INTO `score` VALUES ('3', '2', '1', '77');

学生实体包括与其关联的所有数据。

我想导出一个名为Mary的学生实体,包括其所有相关数据(课程,分数)

通过该工具,我想获得如下输出:

1。 json格式:

{
    "id": 2,
    "student_no": 19002,
    "name": "Mary",
    "gender": 2,
    "age": 12,
    "score": [
        {
            "id": 2,
            "course_id": 1,
            "student_id": 2,
            "score": 96
        }
    ]
}

2。插入语句

INSERT INTO `student` (`id`, `student_no`, `name`, `gender`, `age`) VALUES ('2', '19002', 'Mary', '2', '12');

INSERT INTO `score` (`id`, `course_id`, `student_id`, `score`) VALUES ('2', '1', '2', '96');

以上两种格式中的任何一种都可以帮助实现我的目标。

目的

与Mary关联的数据是学生记录和她的课程成绩记录,因此我希望该工具可以帮助我将数据从一个数据库传输到另一个数据库,或者轻松删除数据库中有关Mary的任何关联记录,而不必编写我自己的SQL语句。

有这样的工具吗?该工具应该是可配置的,无需编写代码,即可定义实体中涉及的表及其之间的关联字段。

谢谢!

0 个答案:

没有答案