当前位置: 首页 > 网络应用技术

Django的数据库触发器在哪里(Django连接现有数据库)

时间:2023-03-07 12:50:41 网络应用技术

  本文将告诉您Django的数据库触发器在哪里,Django连接与现有数据库相对应的知识点。我希望这对您有帮助。不要忘记收集此网站。

  本文目录清单:

  1.可以将扳机添加到Django吗?如果可以添加它,我可以添加什么?2。如何在django中实现数据库视图是虚拟表3.数据库中的触发器在哪里关注?4.在SQL数据库中的触发器可以在哪里看到触发器,就像Tomcat一样。几年前这样的事情。

  但是从框架来看,触发器在back.nginx + web(djnago) + appserver中更好,通常在appserver.web中触发效果更好。web仅涉及单个请求的处理。尽管它也保留了会话状态,但最好不要保留业务逻辑和状态。这样,整个数据流更加顺畅,扩展更好,并且易于维护。

  一个认真的答案:首先在数据库中建立视图,然后在django中建立相应的模型。类对应于下表的类别,该类别大致如下

  类ViewModel(Models.Model):

  “”“”此模型类对应于您建立的视图“”“”“”

  类元(对象):

  “”“以相同的方式,此方法可用于使用MySQL中的任何现有表,而不仅仅是视图“”“”“”。

  db_table ='your_view'#差异指定表名称,这是您创建的视图的名称

  托管= false#默认值是ture,设置为false django将不会执行表并删除表操作

  #创建字段之间的映射

  #应该注意,必须将字段设置为主要键

  #Thothwise Django将自动创建一个ID字段作为主键,这会导致错误

  百度知道它越来越辣,所有答案。

  简而言之,这是事件触发。

  例如,您执行操作并删除数据库中的表格。当您要执行或完成此操作时,该程序可以自动做其他事情。对于统计的总数。

  最初,您可以在自己的程序中写下此作业,只需在删除操作后插入或写统计之前写支票。想念它。

  触发器,您定义了一定的操作,例如将检查的工作过程定义为插入的前触发器,并将统计工作定义为帖子触发器。该程序已自动完成此工作。

  主要角色:我觉得

  首先是完整性(以防止您自己的编程的遗漏),

  第二个很简单,

  第三,这项工作是由数据库程序(例如Oracle)执行的,而不是由您自己的过程进行,这是有效的。

  这是其他一些教程。实际上,原因很简单。您可以在以后使用几个数据库的示例,自己写一个,然后尝试。

  ————————————————————————————————————————————————————————————————————————————

  触发介绍

  扳机是一个特殊的存储过程。它在特定表中插入,删除或修改

  当数据比数据库本身的标准函数更加精致和复杂时,触发了数字执行。

  数据控制能力。数据库触发器具有以下功能:

  *安全。您可以使用户有权根据数据库的值操作数据库

  利润。

  #可以基于时间限制用户的操作,例如不允许在工作后下班

  修改数据库数据。

  #您可以根据数据库中的数据限制用户的操作,例如不允许股票

  价格一次性上涨超过10%。

  *审核您可以跟踪用户的数据库操作。

  #审核用户操作数据库语句。

  #用户的数据库更新写入审核表中。

  *实现复杂的数据完整性规则。

  #实施非标准数据完整性检查和约束。触发器可以产生比率规则

  与规则不同,触发器可以引用列或数据库对,从而更复杂的限制。

  大象。例如,扳机可以返回任何试图吃掉的期货,而不是自己的存款。

  #提供可变默认值。

  *实现复杂的非标准数据库相关的完整性规则。触发器可以编号

  根据库中的相关表,串行更新。例如,在fure_code列上

  删除触发器可能会导致其他表中匹配的相应线。

  #修改或删除匹配行或删除“部分连接”或“删除”。

  #在修改或删除时,将其他表的匹配设置为空值。

  #在修改或删除时,将其他表中的行 - 级线设置为默认值。

  #扳机可以拒绝或返回那些破坏相关完整性并取消审判的更改

  数字执行数据更新。当插入与主机不匹配的外键时

  此时,此触发器将起作用。例如,您可以在books.author_code上。

  列在列上生成插入触发器。

  当值不匹配时,将插入插入。

  *实时复制表中的数据。

  *自动计算数据值。如果数据的价值符合一定要求,则

  确定的治疗。例如,如果公司帐户上的资金少于50,000元人民币,他们将立即给予金融人员

  工作人员发送警告数据。

  Oracle和Sybase数据库之间存在一定的区别。以下将分别描述

  这两个数据库触发器的角色和写作。

  eracle触发

  Oracle生成数据库触发器的语法:

  创建[或替换]触发触发名称触发时间触发事件

  在表名中

  [每行]

  PL/SQL语句

  在:

  触发名称:触发对象的名称。触发器是自动执行数据库的名称

  因此,名称只是一个名称,没有大量使用。

  触发时间:执行触发器时,值是可取的:

  之前---表示在数据库操作之前的触发器执行;

  后面指示起始人在数据库操作后执行。

  触发事件:指示哪些数据库运动将触发此触发器:

  插入:数据库插入将触发此触发器;

  更新:数据库修改将触发此触发器;

  删除:数据库删除将触发此触发器。

  表名:数据库触发所在的表格。

  对于每一行:表的每个行触发器一次执行一次。如果没有一个

  选项仅执行整个表。

  示例:在更新表验证之前,触发器下面的触发器。目的不允许

  修改餐桌周末:

  创建触发auth_secure

  插入或更新或删除之前//在更新整个表之前触发它

  在身上

  开始

  if_char(sysdate,'dy')='sun'

  rish_application_error(-20600,'无法在周末修改表格');

  万一;

  结尾

  三个SYBASE数据库触发器

  Sybase数据库触发器的作用与Oracle非常相似,只有很小的差异。

  Sybase生成了触发器的语法::

  创建触发触发器名称

  在表名中

  用于插入,更新,删除

  作为

  sql_statement |

  要插入,请更新

  作为

  如果update(column_name)[和|或更新(column_name)] ...

  sql_statement

  上面的子句用于指定触发器上的哪些数据更新命令可以激活

  trigger.if Update子句检查指定列的操作类型,在if Update子句中

  可以在其中指定多个列。

  与Oracle不同,对于每个SQL语句,触发器仅执行一次。

  数据更新语句完成后立即执行。触发和启动语句被视为一个

  自我处理,可以在触发器中返回交易。

  让我们展示Sybase触发器的写作。

  创建Forinsrt_books的触发器

  在书籍上

  用于插入

  作为

  if(从auths中选择计数(*),插入

  where auths.author_code = insert.author_code)!= @@ rowcount

  开始

  回滚事务

  在“验证表中不存在书籍表”中的作者_code列的值。

  结尾

  在系统的sysobject表中,xtype ='tr'

  从sysobject中选择 * xtype ='tr'

  您可以在数据库中看到触发器及其相关参数

  引入Django的数据库触发器和连接现有数据库的Django的引入已经结束。我想知道您是否找到所需的信息?如果您想进一步了解此信息,请记住要收集对该网站的关注。