首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在INSERT查询中同步数据库

如何在INSERT查询中同步数据库
EN

Stack Overflow用户
提问于 2016-05-01 11:20:16
回答 1查看 1.2K关注 0票数 2

这是我的问题。

代码语言:javascript
复制
INSERT INTO compare_moodle 
            (userid, 
             username, 
             firstname, 
             lastname, 
             courseid, 
             coursename) 
SELECT mdl_user.id, 
       mdl_user.username, 
       mdl_user.firstname, 
       mdl_user.lastname, 
       mdl_course.id, 
       mdl_course.fullname 
FROM   mdl_user 
       JOIN mdl_role_assignments ra 
         ON mdl_user.id = ra.userid 
       JOIN mdl_role r 
         ON ra.roleid = r.id 
            AND r.id = 5 
       JOIN mdl_context c 
         ON ra.contextid = c.id 
       JOIN mdl_course 
         ON mdl_course.id = c.instanceid 

mdl_user或其他数据库更改(删除/更新/插入)时,如何同步compare_moodle?我想用扳机但不知道怎么用。

EN

回答 1

Stack Overflow用户

发布于 2016-05-01 12:23:46

可以使用VIEW来代替表,以达到您当前的目的。你会这样做的:

代码语言:javascript
复制
CREATE OR REPLACE VIEW compare_moodle AS
 SELECT mdl_user.id AS userid, 
        mdl_user.username, 
        mdl_user.firstname, 
        mdl_user.lastname, 
        mdl_course.id AS courseid, 
        mdl_course.fullname AS coursename 
   FROM mdl_user 
   JOIN mdl_role_assignments ra    ON mdl_user.id = ra.userid 
   JOIN mdl_role r                 ON ra.roleid = r.id 
                                  AND r.id = 5 
   JOIN mdl_context c              ON ra.contextid = c.id 
   JOIN mdl_course                 ON mdl_course.id = c.instanceid;

这为您提供了一个虚拟表,该表始终与源表进行事务更新。SQL最佳实践告诉我们,这种没有数据冗余的方法是实现所需功能的最佳方法。

当然,问题在于性能。如果经常使用此compare_moodle视图,则可能会出现减速。对表进行正确的索引实际上可以消除这些减速。我建议您让您的应用程序使用一个视图,然后找出您是否有性能问题。

您在问题中所要求的是一个所谓的http://www.fromdual.com/mysql-materialized-views --一个由实际表表示的视图。在一些数据库管理系统的创建和模型中,您可以给出类似于CREATE OR REPLACE MATERIALIZED VIEW ...这样的命令,而DBMS完成了所有的工作。但是,MySQL并没有提供这样的服务。

有各种管理物化视图的MySQLish方法。有关更多信息,请看这里。但是,与使用普通视图相比,这种方法是一个大麻烦,也是一个维护上的麻烦。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36966059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档