1. 程式人生 > >mysql觸發器,儲存過程,預處理語句

mysql觸發器,儲存過程,預處理語句

 建立t1表
 create table t1(id varchar(10),name varchar(10),age varchar(20));
 建立t2表
 create table t2(id varchar(10),name varchar(10),age varchar(20));
 
 
 //當對t1表進行新增時自動對t2表也新增
 先設定結束符,因為在建立觸發器的過程中要使用分號所以需要修改結束符
 \d$$
 create trigger tm before insert on t1 for each row
 begin
 insert into t2(id,name,age) values(new.id,new.name,new.age);
 end
 $$
 
  //當對t1表進行刪除時自動對t2表也刪除
   create trigger td before delete on t1 for each row
   begin
   delete from t2 where id=old.id;
   end
   $$
    //當對t1表進行修改時自動對t2表也修改
   create trigger tu before  update on t1 for each row
   update t2 set id=new.id where id=old.id;
   end $$
   
   
   
   
   
   建立儲存過程
   先建立一張表
   CREATE TABLE `ttt` (
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

建立儲存過程
先設定結束符,因為在建立觸發器的過程中要使用分號所以需要修改結束符
 \d$$
create PROCEDURE `p3`()
begin
set @i=0;
while @i < 1000 do
insert into  ttt(name) values(concat("username",@i));
set @
[email protected]
+1; end while; end $$ //呼叫儲存過程 call p3$$ //預處理語句 //我已經有了表testdata,表結構如下 CREATE TABLE `testdata` ( `deptno` mediumint(8) unsigned NOT NULL DEFAULT '0', `dname` varchar(20) NOT NULL DEFAULT '', `loc` varchar(13) NOT NULL DEFAULT '', `num` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 //表資料如下 +--------+-------+-----+------+ | deptno | dname | loc | num | +--------+-------+-----+------+ | 1 | life | l1 | NULL | | 2 | life | 22 | NULL | | 3 | study | 33 | NULL | | 4 | work | 44 | NULL | | 5 | study | 55 | NULL | | 6 | life | 66 | NULL | | 7 | life | 1 | NULL | | 8 | life | 0 | NULL | | 9 | life | 2 | NULL | | 19 | life | 7 | NULL | | 20 | life | 66 | 1 | | 21 | life | 66 | 200 | | 22 | life | 66 | 200 | +--------+-------+-----+------+ //建立預處理語句 先設定結束符,因為在建立觸發器的過程中要使用分號所以需要修改結束符 \d$$ prepare tp from "select * from testdata where deptno>? "$$ //設定變數的值 set @i=9$$ //呼叫預處理語句 execute tp using @i$$ 執行結果如下 +--------+-------+-----+------+ | deptno | dname | loc | num | +--------+-------+-----+------+ | 19 | life | 7 | NULL | | 20 | life | 66 | 1 | | 21 | life | 66 | 200 | | 22 | life | 66 | 200 | +--------+-------+-----+------+

相關推薦

mysql觸發器儲存過程處理語句

建立t1表 create table t1(id varchar(10),name varchar(10),age varchar(20)); 建立t2表 create table t2(id varchar(10),name varchar(10),age varc

mysql 檢視事務儲存過程觸發器

一 檢視 檢視是一個虛擬表(非真實存在),是跑到記憶體中的表,真實表是硬碟上的表。使用檢視我們可以把查詢過程中的臨時表摘出來,儲存下來,用檢視去實現,這樣以後再想操作該臨時表的資料時就無需重寫複雜的sql了,直接去檢視中查詢即可,但檢視有明顯地效率問題,並且檢視是存放在資料庫中的,如果我們程式中使用的sql

MySQL(四)檢視儲存過程觸發器

一:檢視 什麼是檢視? 檢視(View)是一種虛擬存在的表,對於使用檢視的使用者來說基本上是透明的。檢視並 不在資料庫中實際存在,行和列資料來自定義檢視的查詢中使用的表,並且是在使用檢視時 動態生成的 檢視的優點? 簡單:使用檢視的使用者完全不需要關心後面對應的表的

MySql基礎教程二(檢視儲存過程遊標觸發器事務許可權資料型別)

檢視 檢視是虛擬的表。與包含資料的表不一樣,檢視只包含使用時動態檢索資料的查詢。比如下面的語句: select cust_name, cust_contact from customers, orders, orderitems where customers.cust_id=orders.cust_i

mysql設定使用者名稱密碼儲存過程觸發器

mysql的總結的練習題 修改root使用者密碼 mysql -u root; mysql> use mysql; mysql> UPDATE user SET Password = PASSWORD(‘newpass

視圖觸發器事物儲存過程函數流程控制

tro then database lap data rtrim( -s sun .com 一視圖 建表 create database o; use o; create table teacher( tid int primary key auto_increment

查詢資料庫中當前使用者下的所有表儲存過程檢視觸發器

user_objects是oracle字典表的試圖,他包含了通過DDL建立的所有物件。表,試圖,索引。。等 all_table,  dba_table  , user_table   同理 Select object_name From user_obj

檢視儲存過程觸發器

檢視的特點 檢視只是一種邏輯物件,是一種虛擬表,它並不是物理物件,因為檢視不佔物理儲存空間,在檢視中被查詢的表稱為檢視的基表,大多數的select語句都可以用在建立檢視中 優點:集中使用者使用的資料,掩碼資料的複雜性,簡化許可權管理以及為向其他應用程式輸出而重新組織資料等等 語法

SQL語句優化索引檢視觸發器儲存過程函式等。

    一,SQL優化        主要解決海量資料操作時的全表搜尋,所以減少不必要的全表搜尋是SQL優化的主要目的,下面總結一下常用的優化有哪些:        1,避免在where條件中使用!=或者<>,這樣會是的查詢放棄索引而進行全域性掃描       

SQL增刪改查迴圈觸發器儲存過程以及sql語法

                                      可以直接貼上程式碼使用 --建立資料庫命令 create database j1216 on ( name=j1216, filename='E:\shuju\j1216\j1216.mdf', s

ORACLE PL/SQL語法應用:遊標儲存過程觸發器函式

--遊標 --do while迴圈 declare    cursor c is select * from t_t_student order by id;   v_record c%rowtype

mysql中檢視儲存過程檢視函式

一:檢視儲存過程 1,show procedure status; --這個是檢視所有的 2,show create procedure proc_AllUser;  這個是檢視proc_AllUser這個儲存過程的具體資訊 3,select 'name' from

oracle資料庫觸發器儲存過程定時器jobpackage的基本用法總結

--定時器job語法引數解析 使用Submit()過程,工作被正常地計劃好。 這個過程有五個引數:job、what、next_date、interval與no_parse。 PROCEDURE Submit ( job       OUT binary_ineger, W

sqlserver檢視觸發器儲存過程檢視及表的一些命令

select name from sysobjects where xtype='TR' --所有觸發器 select name from sysobjects where xtype='P' --所有儲存過程 select name from sysobjects

Oracle學習筆記 -分頁儲存過程自增

Oracled 的欄位自增,查詢,遊標的返回,儲存過程。 1,自增(觸發器) //還有一個條件需要增加一個佇列 create or replace TRIGGER MYSYSTEM.CBOUNCEID BEFORE INSERT ON MYSYSTEM.BOUNCERECORD

Sql Server 資料庫表結構儲存過程檢視比較指令碼

  頂級乾貨   用來比較兩個資料庫之間 表結構,儲存過程及檢視差異的儲存過程,直接複製對應的儲存過程,無需改動,直接在資料庫中執行(傳遞要比較的資料庫引數)即可 1.兩個資料庫之間儲存過程及檢視差異比較的儲存過程 --測試指令碼 --exec [p_com

在java應用程式下呼叫儲存函式儲存過程

建立connection連結,釋放關閉連結 package demo.untils; import java.sql.Connection; import java.sql.DriverManage

SQLserver2008儲存過程遊標的使用。

當我們需要用到 儲存過程的時候,你會發現,有時候不僅僅是對資料的增刪改查,經常需要對中間表的結果集進行操作,下面我先講一下我這裡的業務邏輯,然後再貼程式碼塊, 我們微信上面由客戶經理髮放企業紅包,需要粉絲們去搶,經理建立一個紅包活動,沒有被搶完的情況下,需要我們後面把紅包剩

如何使用plsql匯出oracle資料建表語句儲存過程檢視。以及表中資料

轉載自:http://blog.csdn.net/u010735684/article/details/48524727 侵刪 第一:匯出資料建表語句,儲存過程,檢視等 開啟plsql,如圖,點選工具————匯出使用者物件  點選匯出使用者物件。如圖所示:  如圖勾

MySQL觸發器儲存過程、自定義函式、檢視 常用SQL

1.建立一個userinfo表新增記錄時的觸發器 將新增日誌加入到userinfolog 2.建立一個向userinfo表新增記錄的儲存過程 3.根據userinfo表的出生日期欄位 我們將建立一個簡單算得年齡的自定義函式 4.建立一個userinfo的檢視 呼叫年齡函式