对触发器一词早有耳闻(最早是在耿大妈的数据库视频中),当初看完视频后,对理解不深刻的东西如:触发器,存储过程,事务,日志等等没有具体的去查阅,也没有具体的去尝试,应用.所以才导致了今天的博客(把曾经丢下的补上).提到触发器一词,首先想到的是"触发器不能乱用","慎用触发器",只是我们可不能把这些提醒的话,当成了自己不去尝试的借口.学习要有无知者无畏的精神,管他呢,先试了再说. 简介 概念:触发器是个特殊的存储过程(存储过程下篇博客中会讲到),它的运行不是由程序调用,…
在上篇博客中介绍到了触发器的使用,而且当中也提到了触发器是个特殊的存储过程,那么什么是存储过程呢?他们 两个又究竟有什么差别呢? 事实上最基本的差别就是,触发器是当满足条件时系统自己主动运行的,而存储过程是手动调用的. 简介 什么是存储过程? 定义:将经常使用的或非常复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,用户通过指定存储过程的名字 并给出參数(假设该存储过程带有參数)来调用它. 说到这里,可能有人要问:这么说存储过程不就是一堆SQL语句而已吗?那么存储过程与一般的SQL语句…
Style style = new Style(); style.TargetType = typeof(TextBox); MultiDataTrigger trigger = new MultiDataTrigger(); Condition condition1 = new Condition(); condition1.Binding = new Binding() { Path = new PropertyPath("Text"), RelativeSource = Rela…
在设计数据库时为了降低数据冗余.一般都会依照三范式去设计,但有时我们在查询时须要通过一字段获取跟这 个字段相关联的好几个字段.可是他们又分布在不同的表中,这时候假设依照正常途径走的话须要同一时候查询好几张 表,不仅操作麻烦还easy出错.当然我们有捷径.把想要查询的字段都整合到一张虚拟表中,这就是视图的应用. 简介     概念:视图是从若干基本表或其它视图构造出来的表,是一张虚拟的表.其内容由查询定义. 同真实的表一样. 视图包括一系列带有名称的列和行数据. 可是视图并不在数据库中以存储的数据…
    存储过程能够用来提高数据库的查询效率.由于它事先被编译过.被储存于内存中,每次执行前.不必被从新编译,所以效率非常高. 存储过程是一组sql增删改查的集合,假设程序中的一个功能涉及到对数据库的多次操作.那么就能够事先编译好存储过程.以提高程序执行效率!     简单查询: CREATE PROCEDURE sp_query_online_info AS SELECT *FROM T_OnLine_info GO 运行存储过程: EXEC sp_query_online_info 带參数的…
序言 一个服务或者一个程序,由 程序+数据组成.在数据这块,计算机中IO是比CPU要慢得多,为了减少IO,减少CPU运算.我们第一时间会想到索引,但索引为啥会提高效率,因为可以减少IO,在查询的时候不用遍历整张表. 关于mysql 的小知识, 1)在创建表的时候如果在业务中能保证非null的字段,建议明确标示not null 因为mysql中对null需要特殊的标示.使用not null 字段更节省空间.对接下来的索引构建也有好处. 2)count(*) 和count(id) id 代表某个字段…
今天,将<第一行代码>最后实战的coolweather项目,认真做了一遍. 今晚,在书中第一阶段开发代码认眞在Android studio敲完,发现setOnItemClickListener函数按照书中报错,原书如下所示: 但这样,报错,gradel提示该类不存在,现在还不清楚是不是因为作者版本太旧的原因,有待查证,后面,我用了下面方法,就编译通过,如下: 其实,我就是调用了AdapterView里面的OnItemClickListener方法而已. 此外,还发现一个问题,那就是我在grad…
在搜索使用LINQ TO SQL 添加数据后获得自增长ID的方法时,发现C#可以使用DebuggerWritter把使用Linq to SQL执行的SQL语句显示到即时窗口,于是在网上搜索到在VB.NET下实现的方法,共享给大家: 1.首先在项目内添加新类,命名为:DebuggerWritter.vb 2.输入代码后保存: Imports System.Diagnostics Imports System.Globalization Imports System.IO Imports Syste…
  需要在C#代码中执行一个SQL文件的内容.遇到了两个问题: 1. 因为SQL文件中有"GO"语句,执行时报错"Incorrect syntax near 'GO'.". 2. 如果将SQL文件中有"GO"语句全部去掉,则可能出现SQL运行错误.原因是去掉"GO"后,等于整个文件的内容一次执行,但是SQL文件有可能后面的内容需要在前面某些语句已经执行的基础上才能执行的. 解决的办法是:用一个StringBuilder,然后一…
--将所有HY开头的表都生成一个更新触发器的脚本('/'是为了连续创建多个触发器而不报错)select 'CREATE OR REPLACE TRIGGER '||table_name||' BEFORE UPDATE on '||table_name||' REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE BEGIN IF updating THEN :NEW.C_UPDATE_TIME:= SYSDATE; IF :NEW.C_DA…