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

如何编写Django触发器(Django启动脚本)

时间:2023-03-05 23:38:18 网络应用技术

  如今,首席CTO Note将与您分享如何撰写有关Django的触发方式的写作。其中,将详细介绍Django启动脚本。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  本文目录清单:

  1.可以将扳机添加到Django吗?如果可以添加它,我可以添加什么?2。我需要有人帮助我编写数据库触发器。我不知道如何编写3.触发器的写作4.背景执行程序,您可以找到各种触发器。几年前有这样的事情。

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

  在学生上创建触发器trig_stu_update

  用于更新

  作为

  开始

  结尾;

  在学生上创建触发器trig_stu_delete

  用于删除

  作为

  开始

  结尾;

  ---------------------------------------------------------------------------------------------

  以上是一个更新和删除的触发模板,在开始之间填充代码。

  插入,删除经常在扳机中使用。

  插入存储在插入和更新操作的插入或更新值中。

  在删除中,更新和删除的更新的先前值或删除值。

  指示:

  声明@no int,@sex bit,@age int;

  - 以上,更新采用新值

  选择@no = no,@sex = sex,@age =年龄插入;

  - 删除,更新删除值

  选择@no = no,@sex = sex,@age = deleted年龄;

  使用扳机触发器

  插入触发器

  触发器是由SQL语句集合组成的代码块。响应某些动作时,该语句集将被激活。触发器也可以解释为特定类型的存储过程。在表中,数据操作语言(DML)语句(DML)语句(DML)语句 - instert,Update,delete,delete,delete,触发触发器。

  触发功能:

  1.当发送任何数据修改语句时,它将由SQL Server自动调用

  2.在存储过程的情况下,无法明确调用或执行

  3.它可以防止错误的数据,未经授权和不一致的更改

  4.它无法返回用户的数据

  触发语法:

  创建触发trigger_name

  在table_name上

  [加密]

  对于[插入|更新|删除]

  作为sql_statement

  幻影表:

  当触发刺激对插入,删除或更新语句的响应时,创建了两个特殊表:插入表和删除表,删除表,删除表,删除表。

  例子:

  创建触发器trginsertrequisiton

  根据请求

  用于插入

  作为

  声明@VacnacyRepported int

  声明@actualvacance int

  选择@actualVacance = ibudgetedStreangth -currentsstrength

  从位置加入插入

  cons.cpositionCode = inserted.cpositionCode

  选择@VancyReported = inserted.sinofvacance

  从插入

  如果(@VancyReported @actualVacance)

  开始

  打印实际职位空缺少少少即

  回滚事务

  结尾

  返回

  删除触发器

  1.试图从触发表中删除一行时,触发了删除触发器

  2.有三种使用删除触发触发器来获得参考完整性约束的方法:

  1.连接方法:每当从主表中删除记录时,请在依赖项表中删除记录

  2.限制方法:如果尖锐的记录出现在依赖项表中,则限制仅限于从主表中删除记录

  3.增加方法:每当从主表中删除记录时,依赖表中列出的值无效

  来自公共的SELCT *;

  创建触发器Trgfordel

  在公共场合

  用于删除

  作为

  开始

  打印“您删除的数据的内容”

  从删除中选择 *

  结尾

  从pub_id = 9;

  更新触发器

  当上腹触发器感到兴奋时,它使用两个逻辑表,涉及其原始删除表和存储新线路的插入表。

  示例1:

  创建触发器trgupdatepub

  在公共场合

  用于更新

  作为

  如果更新(pub_id)

  开始

  打印“发布者ID不能修改”

  回滚式

  结尾

  P当用户尝试修改Pub_ID列时,它会刺激,因此它可以防止用户修改Pub_ID的内容并滚回整个交易

  示例2:

  创建触发器trgupdatecontractrecruiter

  在碰撞中

  用于更新

  作为

  声明@AvgperCentageCharge int

  选择@avgpercentagecharge = avg(sipercentagecharge)

  来自违规者

  if(@avgpercentagecharge 11)

  开始

  打印“平均值不能超过11”

  回滚事务

  结尾

  修改触发语法:

  ALTER TRIGGERTIGGE_NAME

  在table_name上

  [加密]

  对于[插入|删除|更新]

  作为sql_statement

  删除扳机:

  drop触发trigger_name [,... n]

  通过触发增强数据的完整性

  触发器可用于确保和加强业务规则和数据完整性。例如,只有在库存中有此产品时,才可以出售。如果使用扳机,它将检查不正确的交易并确保仅有效有效。数据可以插入表中。

  例如:某些更改违反了参考完整性,然后所有此类更改都被拒绝,因此所有更改数据库的数据都将取消。

  创建triger trgupDatedElete

  在Titleauthor上

  要插入,请更新

  作为

  if(从标题中选择计数(*)t加入插入i

  在t.title_id上= i.title_id)= 0

  开始

  打印“输入Invialid标题ID”

  回滚

  结尾

  if(从作者中选择(*)t加入插入i

  在t.au_id上= i.au_id)= 0

  开始

  打印“ invialid作者id eneter”

  回滚

  结尾

  多个触发器:

  SQL Server允许多个触发器在给定表中定义多个触发器。这意味着单个DML语句可以激活两个或多个触发器。激活扳机以创建订单。

  之后和触发

  功能后,在成功执行DML操作后,后触发为触发器。

  喜欢:

  创建triger trgdeletetitles

  在标题上

  删除后

  作为

  打印“删除成功”

  ****************************************************************************************

  如果在单个DML之后有多个触发器后有多个,则可以使用SP_SETTRIGGERORDER系统更改这些触发器的执行顺序。

  sp_setTriggerOdriggerName,order-value,dml-operation

  OrderValue = First |最后|无随机序列

  DML操作指出,触发器创建的DML操作。

  sp_setTriggerOrder'trgdelettitles','first','delete'

  ****************************************************************************************

  触发替换而不是触发

  喜欢:

  创建触发器trgpublisherDelete

  在公共场合

  而不是删除

  作为

  打印“无法删除主记录!”

  这个触发器只能在表上创建一个

  不正确。每个人都能纠正

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

  类ViewModel(Models.Model):

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

  类元(对象):

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

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

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

  #创建字段之间的映射

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

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

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

  结论:以上是首席CTO注释以及Django启动脚本的全部内容介绍Django触发器的内容。我希望这对每个人都会有所帮助。如果您仍然想进一步了解此信息,请记住在此网站上收集并关注此网站。