最近用mysql有这么一个需求

item表:id,item,url,websiteid

website表:id,domain

item表示从不同网站获取的信息

website表示获得信息的网站,其中的web字段是该网站的域名

显然item表的websiteid和website表的id是关联的。

现在想要做到插入一条item记录(item,url,websiteid)

一种方法是全都在应用程序那边做。应用程序拿到url,分割出域名,先去website表查查看有没有,没有的话新增一条。这样就可以拿到websiteid,再将item,url连同websiteid插入到item表。

另一种方法就是这里要将的trigger。当然用存储过程也可以,但这方面我还没研究。

在item表上设置trigger,作用是应用程序只要插入item,url即可,其他的工作由trigger来完成。

 CREATE DEFINER=`root`@`%` TRIGGER `db`.`item_insert` BEFORE INSERT ON `item` FOR EACH ROW
BEGIN
declare d varchar(200);
declare c int;
set d = substring_index(NEW.url,'/',3);
set c = (select count(*) from db.website where domain=d);
if c=0
then
insert into db.website (domain) values (d);
end if;
set c = (select id from db.website where domain=d);
set NEW.websiteid = c;
END

mysql trigger 备忘的更多相关文章

  1. Ubuntu下使用Docker搭建MySQL步骤备忘

    docker 安装和 pull MySQL镜像这里就不介绍了,很多介绍,建议去docker官方网站查看. 本文主要介绍MySQL container 运行起来之后的一些配置 在往下看之前,确保 doc ...

  2. centos 6.4 mysql rpm 离线安装【备忘】

    离线状态下使用rpm的安装包进行mysql的安装,仅作备忘 准备工作: 官网下载mysql离线rpm安装包(这里就不演示了,拿现成的做演示) =================更新线 2018-01- ...

  3. Mysql又一次整理笔记--woods备忘

    ==============================SQL备忘 CRUD 查询 多表 事件等=============================== ------------------ ...

  4. Mysql CPU使用率长期100%的解决思路备忘

    最近一台服务器的CPU使用率长期保持在100%的状态,查看进程发现是Mysql服务导致的.于是搜索各方资料,终于成功解决问题.备忘以及分享一下,希望可以帮助各位新手朋友. (服务器运行环境是Windo ...

  5. php 相关模块备忘

    在安装php的时候,不管是编译安装: ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

  6. Nmap备忘单:从探索到漏洞利用(Part 5)

    这是备忘单的最后一部分,在这里主要讲述漏洞评估和渗透测试. 数据库审计 列出数据库名称 nmap -sV --script=mysql-databases 192.168.195.130 上图并没有显 ...

  7. Nmap备忘单:从探索到漏洞利用(Part 4)

    这是我们的Nmap备忘单的第四部分(Part 1. Part 2. Part 3).本文中我们将讨论更多东西关于扫描防火墙,IDS / IPS 逃逸,Web服务器渗透测试等.在此之前,我们应该了解一下 ...

  8. MySQL主备停机步骤与注意事项

    双十一马上到了,一堆的事情,今天登录mysql数据库服务器的时候突然发现服务器时间戳不对,比北京时间快了几分钟,我的天...随后检查了其他的几台数据库服务器发现同样都存在不同的偏差,最小的比北京时间快 ...

  9. centos 安装gitee备忘

    centos 安装gitee备忘:安装前需要升级git.需要安装mysql阿里云主机需要把端口加入例外需要修改全局配置文件把localhost改为ip需要设置为后台运行

随机推荐

  1. c#基础之异常处理及自定义异常

    一.什么是c#中的异常? 异常是程序运行中发生的错误,异常处理是程序的一部分.c#中的异常类主要是直接或者间接的派生于 System.Exception类 ,也就是说System.Exception类 ...

  2. R语言最优化(一维)

    最优化问题是普遍存在的,以前上运筹学课的时候也接触过最优化相关的问题,当时主要是理论课,并且关注的重点是单纯形法.运输问题以及图论等,这里指的最优化是指函数的最优化,即函数的极值,由于寻找一个局部最优 ...

  3. jmeter如何进行MQTT性能测试(测试前期准备二,MQTT插件及协议了解)

    jmeter插件下载地址及使用,已经有大佬总结好了 大佬的博客地址: https://blog.csdn.net/yellowanwu/article/details/50889677 添加线程组:添 ...

  4. EXCEL查找函数之VLOOKUP,LOOKUP,HLOOKUP

    VLOOKUP是纵向查询函数,VLOOKUP(lookup_value,table_array,col_index_num,range_lookup). 参数                      ...

  5. jmeter测试计划元素执行顺序

    jmeter测试计划元素执行顺序 测试计划的元素是有序的,通过以下方式执行: 1–配置节点 2–前置处理器 3–定时器 4–取样器 5–后置处理器(只在有结果可用情况下执行) 6–断言(只在有结果可用 ...

  6. Vue对Html标签应用条件渲染

    我的需求 在flag属性为true时 渲染标签的html为 <input :data-val-required="不能为空"/> 在flag属性为false时 渲染标签 ...

  7. 2018-2019-2 网络对抗技术 20165326 Exp3 免杀原理与实践

    免杀原理与实践 目录 知识点问答 实践内容 遇到的问题 心得体会 知识点 meterpreter免杀 基础问题回答 杀软是如何检测出恶意代码的? 特征码(基于签名):模式匹配,比对特征码库 启发式:通 ...

  8. 无线局域网(WLAN)

    无线局域网根据结构可以分为两大类:有固定基础设施的无线局域网和无固定基础设施的局域网. 有固定基础设施是指网络中已经预先存在了一批固定的数据处理和转发设备,这些固定设备可以通过有线方式连接其他网络或 ...

  9. 简单网络管理协议(SNMP)

    SNMP是TCP/IP网络中应用最为广泛的网络管理协议,工作在TCP/IP参考模型的应用层,是一种面向无连接的协议 功能:SNMP的功能是使网络设备之间能方便的交换管理信息,从而使网络管理员了解网络运 ...

  10. Python笔记4——字典的一些基本操作

    #字典 key-value #添加 my_family= {"father": "weihaiqing", "mother": " ...