1. 程式人生 > >mysql 觸發器 監聽這個表插入時增加資料 在某欄位變動時進行觸發

mysql 觸發器 監聽這個表插入時增加資料 在某欄位變動時進行觸發

專案觸發器

在mysql 表中增加 

需求 當這個表 新增記錄的時候觸發

DROP TRIGGER IF EXISTS t_make_data; //刪除原先的觸發器
CREATE TRIGGER t_make_data //建立觸發器
BEFORE INSERT ON t_tab1 //觸發在這張表新增資料前
FOR EACH ROW
BEGIN  //要執行的sql list 開始
DECLARE number_rand BIGINT(20) DEFAULT 4000 ; 

SET number_rand = (SELECT CAST(RAND()*300+300 AS signed) AS rand);//進行隨機數

SET new.number_rand = number_rand;//要在新增的資料中加入資料
END;//要執行的sql list 結束

下面這個是在這個表某個欄位發生變動的時候進行觸發

DROP TRIGGER IF EXISTS t_make_data;//刪除原先的觸發器
CREATE TRIGGER t_make_data //建立觸發器
BEFORE update ON t_tab1 //觸發在這張表修改原先資料前
FOR EACH ROW
BEGIN
DECLARE number_rand BIGINT(20) DEFAULT 100 ; //建立變數

SET number_rand = (SELECT CAST(RAND()*10+10+old.number_rand AS signed) AS rand);//隨機數

IF new.number <> old.number then //進行判斷如果新的資料 不等於 就的資料
	SET new.number_rand=number_rand; //進行性更新
END IF; //if結束
END; //sql 結束

複製過去 要把註釋幹掉

希望可以幫當大家 

歡迎討論和教導



相關推薦

mysql 觸發器 這個插入增加資料變動進行觸發

專案觸發器 在mysql 表中增加  需求 當這個表 新增記錄的時候觸發 DROP TRIGGER IF EXISTS t_make_data; //刪除原先的觸發器 CREATE TRIGGER t

LocationListener位置變化,當進入到一距離內發出提醒

專案中需要這樣的要求: 啟動一個服務一直在背後監聽當前位置變化,如果進入到離某個地點n千米內,發出一個Notification提醒使用者附近有什麼什麼...... 這裡我採用的策略是這樣的: 首先監聽網路,如果聯網了就啟動距離監聽服務,否則關閉距離監聽服務。因為網路一旦斷了,

在php中應用mysql查詢語句查詢出每月、每週、每年的統計值

我們在正常的業務邏輯中常常會做出一些系統性分析。例如統計每月 每週  每年的 總額。 例如此處我們要統計每一個月的金額收入支出。 我們使用的欄位包含這個金額所有的欄位以及我們統計要使用到的時間戳。 我在thinkphp 3.2中 使用它  $name=M('Goods

建立和測試觸發器:向SC插入資料,檢查插入資料的課程號是否存在於Course中(建立之前刪除Cno的外來鍵約束,比較外來鍵約束和觸發器之間的不同)

alter table SC Drop constraint FK_SC--刪除外來鍵約束 CREATE TRIGGER trig_insert ON SC--在SC表中建立trig_insert觸發器 AFTER INSERT--insert為觸發事件,after則為觸發的時機

一個類,有新增元素(add)和獲取元素數量(size)方法。 啟動兩個線程。線程1向容器中新增數據。線程2容器元素數量,當容器元素數量為5,線程2輸出信息並終止

override tac trace add syn countdown print import 數據 方式一: /** * 兩個線程要是可見的所以要加上votalile */public class Test_01 { public static void

耳機的插入和拔出問題

在接入容聯雲的視訊通訊預設第一次接入視訊的時候,是需要開啟擴音的,所以需要監聽耳機的插入和拔出問題。 程式碼如下: 第一步:清單檔案的配置 <receiver android:name=".rlyun.service.HeadsetPlugReceiver">

mysql8基礎 insert 中含有自動增長的插入資料用null或default

資料,資料,命根就在資料 ! 操作資料庫時,一定要謹慎小心。師萬物 這裡的程式碼看看就好,要有自己的判斷。遇到抉擇,要不恥上下問。 example stu@Ubuntu:~$ mysql -u root -p Enter password: Welc

mysql 如何向 自增 插入資料

  建立表: create table vip (     vip_id int PRIMARY key auto_increment,     name varchar(20),     p

【Sql Server】使用觸發器把一個中滿足條件的資料部分插入到另一個

create trigger 觸發器名稱 on 對哪個表起作用 after insert,update as if @@rowcount =0 return set nocount on begin transaction; insert into 表名 (col1,co

使用 mysql-proxy mysql 查詢

運行 分離 clas 分析 其他 -h get 修改 server 什麽是 mysql-proxy? mysql-proxy是mysql官方提供的mysql中間件服務,上遊可接入若幹個mysql-client,後端可連接若幹個mysql-server。 它使用mysql協議

QT USB 裝置 插入、拔出動作

參考網上資料,通過QT 實現#ifndef WIDGET_H #define WIDGET_H #include <QtGui/QWidget> #include <window

Flumeoracle增量

需求:獲取oracle表增量資訊,傳送至udp514埠,支援ip配置 步驟: (1)需要的jar  oracle的 odbc5.jar(oracle安裝目錄  /jdbc/lib下查詢) (2)flume的開源包flume-ng-sql-source-1.4.3.jar

Mysql檢視埠狀態

netstat -na | findstr 埠號 例: C:/Windows/system32>netstat -na | findstr 3306  TCP    0.0.0.0:3306           0.0.0.0:0              LISTE

Layui事件單和資料表格)

## 一、表單的事件監聽 先介紹一下幾個屬性的用法 ### 1、lay-filter 事件過濾器 相當於選擇器,layui的專屬選擇器 ### 2、lay-verify 驗證屬性 屬性值可以是 :required必填項, phone手機號,email郵箱,url網址,number數字,date日期,i

MySQL、SQL server 、Oracle資料庫中查詢所有的資料庫,查詢指定資料庫所有名,查詢所有的的名字

MySQL中查詢所有資料庫名和表名 1.查詢所有資料庫 show databases; 2.查詢指定資料庫中所有表名 select table_name from information_schema.tables where table_schema='database_name' a

mysql find_in_set 和 like進行查詢的對比

find_in_set()和like的區別: 在mysql中,有時我們在做資料庫查詢時,需要得到某欄位中包含某個值的記錄,但是它也不是用like能解決的,使用like可能查到我們不想要的記錄,它比like更精準,這時候mysql的FIND_IN_SET函式就派上用場了,下面來看一個例子。

獵豹移動迴應「外撥電話」:新版瀏覽器今天上線;ofo 進行組織架構調整和升級;滴滴繼續下線順風車業務 | 極客早知道

獵豹移動迴應「監聽外撥電話」:立即整改,新版本明日上線 昨日,針對當天上海市消保委通報獵豹移動監聽外撥電話的問題,獵豹瀏覽器相關技術負責人表示,索要電話許可權的原意是避免使用者收聽有聲讀物時影響正常接打電話。新版將解決通報中涉及的問題,於明天正式上線。此前,上海市消保委通報獵豹瀏覽器存在

MySQL】多聯合查詢(新增查詢、引數設定)

所羅門王說:沒有智慧解決不了的問題。SELECT * from tb_corporation_and_user      人員所在團隊 (`user_id`, `corporation_id` ,  `role_id` ) SELECT * from tb_corporati

MySql:操作的語句以及常用的型別

一.欄位型別 字元:VARCHAR(12) 二級制大資料:VLOB 大文字:TEXT 整形:TINYINT,SMALLINT,INT,BIGINT 浮點型:FLOAT,DOUBLE 邏輯型:BIT 日期型:DATE,TIME,DATETIME,TIMESTAMP 二.表的

mysql 資料庫刪除一張中的重複資料

1.備份操作表資料TBL_BASE_YTX_GROUP2.複製操作表  TBL_BASE_YTX_GROUP   tbl_base_ytx_group_copy13.刪除複製表中的資料delete from tbl_base_ytx_group_copy14.去重操作表中資料