触发器

Oracle 实现表中id字段自增长

旧巷老猫 提交于 2019-12-04 10:27:42
Oracle 实现表中id字段自增长 最近正在学习Oracle的时候发现Oracle表中的字段不能像mysql中那样可以用auto increment修饰字段从而让id这种主键字段实现自增长. 那Oracle中是怎么实现字段自增长呢? 1. 首先创建一个表 -- 1. 餐桌表 CREATE or replace TABLE dinnerTable( id number PRIMARY KEY , -- 餐桌主键 tableName VARCHAR(20), -- 餐桌名 tableStatus number DEFAULT 0, -- 餐桌状态:0,空闲; 1,预定 orderDate DATE default sysdate ); 这个餐桌表中的id字段是我们的主键,我们希望在插入一条内容的时候,id字段能够自动+1。 这里需要用到Oracle中的 序列和触发器 2. 创建一个序列 CREATE or replace TRIGGER my_trigger_table(你的触发器名称) BEFORE INSERT ON dinnerTable FOR EACH ROW begin select my_sequence_table.nextval into :new.id from dual; end ; 这里我们想要每次插入新条目时id+1,那么就要在INCREMENT BY

安装zabbix、添加监控主机、管理监控模板

廉价感情. 提交于 2019-12-04 10:27:21
来源: https://blog.csdn.net/Powerful_Fy zabbix官网:www.zabbix.com 由于zabbix官网的yum源配置好后,yum安装zabbix一直下载报错 Error downloading packages: zabbix-server-mysql-4.0.14-1.el7.x86_64: [Errno 256] No more mirrors to try. zabbix-web-4.0.14-1.el7.noarch: [Errno 256] No more mirrors to try. zabbix-agent-4.0.14-1.el7.x86_64: [Errno 256] No more mirrors to try. 所以配置清华大学的yum源,使用清华开源镜像站的rpm包安装zabbix 下载zabbix-server-mysql: wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-server-mysql-4.0.14-1.el7.x86_64.rpm 下载zabbix-web: wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel

数据库之十五:触发器

烂漫一生 提交于 2019-12-04 08:35:43
触发器的一般语法结构: create [or replace] trigger Ttrigger_name {before|after} Triggering_event on table_name [for each row] [follows another_trigger] [enable/disable] [when condition] declare declaration statemebts begin executable statements exception exception-handling sttements end; 解析: create [or replace] trigger: 表示将创建或者替换一个触发器,如果没有写or replace则只会创建一个触发器,当数据库中已经有该触发器了,则新创建不会成功。 Ttrigger_name:触发器的名字 {before|after} Triggering_event on table_name:表示在table_name表上创建的触发器事件发生的前或者后,触发器会触发 Triggering_event:比如插入或者更新等操作,也可能是时间 [for each row]:表示行级触发器,是对每一行数据都会触发判断。若没有这一句,则是语句级触发器,一次触发只会执行一次 [enable/disable]

Jenkins发送测试报告

雨燕双飞 提交于 2019-12-04 07:53:25
邮件全局配置 邮件插件:Email Extension Plugin 功能:发送邮件 邮件全局配置:jenkins--系统管理--系统配置:截图: 配置说明: 系统管理员邮件地址:必须配置,配置后邮件将由该邮件地址发出。该邮箱必须开启SMTP SMTP server :邮件的smtp服务器:163邮箱为:smtp.163.com Default user E-mail suffix:邮箱的后缀 高级-勾选使用smtp邮箱认证,输入邮箱用户名以及邮箱的密码 勾选SSL 端口:465 编码UTF-8 Default Content Type:选择HTML Default Recipients:默认接收邮件的邮箱地址 Default Subject:构建通知:$PROJECT_NAME - Build #$BUILD_NUMBER - $BUILD_STATUS! Default Content:邮件模板可自行配置: <hr/><metacharset="utf-8">(本邮件是程序自动下发的,请勿回复!)<br/><hr/>项目名称:$PROJECT_NAME<br/><hr/>构建编号:$BUILD_NUMBER<br/><hr/>构建状态:$BUILD_STATUS<br/><hr/>触发原因:${CAUSE}<br/><hr/>构建日志地址:<ahref="${BUILD_URL

D触发器+与非门

时光怂恿深爱的人放手 提交于 2019-12-04 06:25:38
程序: entity dand is port( a,b,clk:in bit; q:out bit ); end ; architecture bhv of dand is signal temp:bit; begin temp<=a nand b; process(clk)--尽管process内部的语句是顺序执行的,但是process作为一个整体和process外部的其他语句是并发执行的。 begin if clk'event and clk='1' then q<=temp; end if; end process; end bhv; 来源: https://www.cnblogs.com/lhkhhk/p/11837481.html

MySQL内置功能

不羁的心 提交于 2019-12-04 05:51:01
1、视图 视图是一个虚拟表(非真实存在),用户只需要使用[名称]即可获取结果集,可以将结果集当作表来使用。 创建视图:create view course_view as select * from course where id > 2; 使用视图:select * from course_view;(本质上是与select * from course where id > 2;相同) 但是无法修改视图中的记录,而且在涉及多个表的情况下是根本无法修改视图中的记录的 修改视图:alter view course_view as 新的sql语句; 删除视图:drop view course_view 2、触发器 触发器能够对表在进行增、删、改操作的前后进行操作。 创建触发器: 在对表进行插入操作之前进行其他操作。 create trigger tri_before_insert_t1 before insert on t1 for each row begin ... end 在对表进行插入操作之后进行其他操作。 create trigger tri_after_insert_t1 after insert on t1 for each row begin ... end 触发器无法由用户主动出发,只能在指定的表被增删改之后 被动的触发 删除触发器:drop trigger tri

plv8 触发器使用

▼魔方 西西 提交于 2019-12-04 04:44:11
触发器使用 demo CREATE FUNCTION test_trigger() RETURNS TRIGGER AS $ plv8.elog(NOTICE, "NEW = ", JSON.stringify(NEW)); plv8.elog(NOTICE, "OLD = ", JSON.stringify(OLD)); plv8.elog(NOTICE, "TG_OP = ", TG_OP); plv8.elog(NOTICE, "TG_ARGV = ", TG_ARGV); if (TG_OP == "UPDATE") { NEW.i = 102; return NEW; } $ LANGUAGE "plv8"; ​ CREATE TRIGGER test_trigger BEFORE INSERT OR UPDATE OR DELETE ON test_tbl FOR EACH ROW EXECUTE PROCEDURE test_trigger('foo', 'bar'); 包含的对象 基于pg标准提供的参数 NEW OLD TG_NAME TG_WHEN TG_LEVEL TG_OP TG_RELID TG_TABLE_NAME TG_TABLE_SCHEMA TG_ARGV 参考: https://www.postgresql.org/docs/current

触发器2

♀尐吖头ヾ 提交于 2019-12-04 04:15:36
今天在自己的本地的数据库里想为一个表插入几行数据 一直就是报错: 消息 2754,级别 16,状态 1,过程 TRIGER_Students_Insert,第 10 行 大于 18 的错误严重级别只能由 sysadmin 角色的成员用 WITH LOG 选项指定。 在网上也没有找到合适的解决办法,突然想到之前自己为这个表写过一个触发器,然后找出来触发器的sql, 按照触发器的条件去下值,就成功了 create table students ( ID int not null, name char(10), age char(2), city varchar(12), ) IF OBJECT_ID (N'TRIGER_Students_Insert', N'tr') IS NOT NULL DROP TRIGGER TRIGER_Students_Insert; GO CREATE TRIGGER TRIGER_Students_Insert ON Students FOR INSERT AS declare @age int select @age=Students.Age FROM Students INNER JOIN inserted ON Students.ID =inserted.ID PRINT @age if(@age<20) begin raiserror(

MySQL总结(5)

ぃ、小莉子 提交于 2019-12-04 03:38:23
视图 SELECT cust_name,cust_contact FROM customers,orders,orderitems WHERE customers.cust_id=orders.cust_id AND orderitems.order_num=orders.order_num AND prod_id='TNT2'; 假如可以把整个查询包装成一个名为 productcustomers 的虚拟表 SELECT cust_name,cust_contact FROM productcustomers #this is a 视图 WHERE prod_id='TNT2' productcustomers 是一个视图,作为视图,它不包含表中应该有的任何列或数据,它包含的是一个SQL查询(与上面用以正确联结表的相同的查询)。 😁 重用SQL语句。 😁 简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必 知道它的基本查询细节。 😁 使用表的组成部分而不是整个表。 😁 保护数据。可以给用户授予表的特定部分的访问权限而不是整个 表的访问权限。 😁 更改数据格式和表示。视图可返回与底层表的表示和格式不同的 数据。 😘 与表一样,视图必须唯一命名(不能给视图取与别的视图或表相 同的名字)。 😘 对于可以创建的视图数目没有限制。 😘 为了创建视图,必须具有足够的访问权限

第六篇:视图、触发器、事务、存储过程、函数

余生长醉 提交于 2019-12-04 03:31:58
阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> select * from course; +-----+--------+------------+ | cid | cname | teacher_id | +-----+--------+------------+ | 1 | 生物 | 1 | | 2 | 物理 | 2 | | 3 | 体育 | 3 | | 4 | 美术 | 2 | +-----+--------+------------+ 4 rows in set (0.00 sec) mysql> select * from teacher; +-----+-----------------+ | tid | tname | +-----+-----