`

mysql:触发器和存储过程

 
阅读更多
1.触发器
1.1 编写触发器
delimiter $
create trigger tg_insertTestWhenInsertUser
after insert on tb_user
for each row
begin
insert into tb_test(id) values(1);
end$
delimiter ;

1.2.查看触发器
 
mysql> select * from information_schema.`triggers` \G;
*************************** 1. row ***************************
           TRIGGER_CATALOG: def
            TRIGGER_SCHEMA: db_jersey
              TRIGGER_NAME: tg_insertTestWhenInsertUser
        EVENT_MANIPULATION: INSERT
      EVENT_OBJECT_CATALOG: def
       EVENT_OBJECT_SCHEMA: db_jersey
        EVENT_OBJECT_TABLE: tb_user
              ACTION_ORDER: 0
          ACTION_CONDITION: NULL
          ACTION_STATEMENT: begin
call pd_insertTest();
end
        ACTION_ORIENTATION: ROW
             ACTION_TIMING: AFTER
ACTION_REFERENCE_OLD_TABLE: NULL
ACTION_REFERENCE_NEW_TABLE: NULL
  ACTION_REFERENCE_OLD_ROW: OLD
  ACTION_REFERENCE_NEW_ROW: NEW
                   CREATED: NULL
                  SQL_MODE: NO_ENGINE_SUBSTITUTION
                   DEFINER: root@localhost
      CHARACTER_SET_CLIENT: utf8
      COLLATION_CONNECTION: utf8_general_ci
        DATABASE_COLLATION: latin1_swedish_ci
1 row in set (0.00 sec)

 


2.存储过程
2.1 编写存储过程
   
delimiter $
create procedure pd_insertTest()
begin
insert into tb_test(id) values(2);
end$
delimiter ;  

2.2 查看存储过程
 mysql> show procedure status ;
+-----------+---------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| Db        | Name          | Type      | Definer        | Modified            | Created             | Security_type | Comment | character_set_client | collation_connection | Database Collation |
+-----------+---------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
| db_jersey | pd_insertTest | PROCEDURE | root@localhost | 2016-07-31 21:53:31 | 2016-07-31 21:53:31 | DEFINER       |         | utf8                 | utf8_general_ci      | latin1_swedish_ci  |
+-----------+---------------+-----------+----------------+---------------------+---------------------+---------------+---------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)



 mysql> show create procedure pd_insertTest ;
+---------------+------------------------+------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Procedure     | sql_mode               | Create Procedure                                                                                           | character_set_client | collation_connection | Database Collation |
+---------------+------------------------+------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
| pd_insertTest | NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`localhost` PROCEDURE `pd_insertTest`()
begin
insert into tb_test(id) values(2);
end | utf8                 | utf8_general_ci      | latin1_swedish_ci  |
+---------------+------------------------+------------------------------------------------------------------------------------------------------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)



3.在触发器中调用存储过程
  delimiter $
create trigger tg_insertTestWhenInsertUser
after insert on tb_user
for each row
begin
call pd_insertTest();
end$
delimiter ;
 
分享到:
评论

相关推荐

    mysql触发器+存储过程

    文件“MySQL存储过程.pdf”和“OReilly.MySQL.Stored.Procedure.Programming.rar”可能会提供关于如何创建、调用和管理MySQL存储过程的详细指南,而“MySQL触发器.rar”则可能包含触发器的创建、使用和优化方面的...

    MySQL触发器、存储过程、自定义函数、视图示例

    ### MySQL触发器、存储过程、自定义函数、视图示例 #### 一、MySQL触发器 触发器是一种特殊类型的存储过程,它被设计为在特定事件(如INSERT、UPDATE或DELETE操作)发生时自动执行。触发器可以用来强制业务规则、...

    MySQL数据库:触发器与事件调度器技术教程

    #### 一、MySQL触发器基础 **1.1 触发器的概念与作用** 触发器是一种特殊类型的存储过程,它被设计成在特定的数据库操作(例如INSERT、UPDATE、DELETE)发生时自动执行。触发器的主要作用包括: - **维护数据完整...

    MySQL SQL高级特性-存储过程-触发器-事务

    MySQL是目前最流行的开源关系型数据库管理系统之一,它提供了丰富的数据库高级特性,比如存储过程、触发器和事务管理。这些特性增强了数据库的交互性、安全性和性能。 一、存储过程 存储过程是一组为了完成特定...

    MYSQL触发器与存储过程.ppt

    MySQL中的存储过程和触发器是数据库管理中两个重要的高级特性,它们极大地增强了数据库的灵活性和安全性,同时也优化了性能。 **存储过程**是预编译的SQL语句集合,存储在数据库服务器上,可以在需要时被调用执行,...

    MySQL数据库函数,触发器,存储过程

    通过深入学习和掌握MySQL的函数、触发器和存储过程,开发者能够更加高效地管理和操作数据库,解决复杂的数据处理问题,提升应用程序的性能。在实际项目中,熟练运用这些特性是数据库设计和优化的关键。通过"mysql...

    mysql的触发器教程和示例代码

    4. 代替存储过程:在某些情况下,触发器可以替代存储过程来实现逻辑,但存储过程更易于管理和测试。 五、触发器的应用场景 1. 数据验证:在数据插入或更新前检查其格式或值。 2. 数据审计:记录每次对表的修改操作...

    MySQL存储过程和触发器

    MySQL中的存储过程和触发器是数据库管理中两个重要的概念,它们极大地增强了数据库的功能和灵活性。 存储过程是一种预编译的SQL语句集合,它可以视为数据库中的一个可执行对象。存储过程有以下几个显著优点: 1. *...

    MYSQL触发器教程.doc

    MySQL触发器是数据库管理系统中的一种重要机制,它允许在特定的数据库操作(如INSERT、UPDATE、DELETE)发生前后自动执行一段预定义的SQL代码。触发器的引入是为了满足更复杂的数据完整性需求,提供数据验证、业务...

    MySQL触发器.pdf

    ### MySQL触发器详解 #### 引言 MySQL触发器,作为MySQL 5.0版本引入的一项重要特性,为数据库管理提供了更为精细的控制能力。触发器允许在特定的数据库操作(如INSERT、UPDATE、DELETE)发生时自动执行SQL语句,...

    MySQL 5.0 触发器.rar

    在学习和使用MySQL 5.0触发器的过程中,你可以参考提供的书籍教程《MySQL 5.0 触发器》。这本书可能涵盖了触发器的基础概念、创建和管理触发器的方法、示例应用以及最佳实践。同时,文件`下载说明.txt`可能包含获取...

    数据库实验报告-存储过程、触发器

    通过这些实验步骤,学生能够深入理解存储过程和触发器的工作原理及其在实际数据库应用中的作用。同时,这些操作也展示了如何在数据库管理系统中编写和管理这些数据库对象,有助于提升数据库设计和管理能力。

    Mysql存储过程游标触发器

    Mysql存储过程游标触发器

    mysql存储过程、触发器.pdf

    MySQL 存储过程和触发器详解 MySQL 存储过程是指一组为了完成特定功能的 SQL 语句集合。存储过程的优点包括: 1. 封装性:存储过程可以将多个 SQL 语句封装在一起,方便调用和维护。 2. 可增强 SQL 语句的功能和...

    mysql辅助工具,强大的功能界面。编辑触发器、存储过程等操作方便。界面风格和vs很像,自带一键格式化sql代码

    mysql辅助工具,强大的功能界面。编辑触发器、存储过程等操作方便。界面风格和vs很像。还可以一键格式化sql代码,内含破解文件,替换即可

    Mysql触发器介绍

    MySQL 的触发器与存储过程类似,都是内嵌于数据库的一种编程机制。触发器的概念最早出现在 MySQL 5.0 版本中,这一特性使得开发者能够编写自动化的数据库操作逻辑,用于响应特定的数据库事件,如插入、更新或删除...

    mysql触发器之创建多个触发器操作实例分析

    本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们...

    MYSQL数据库的索引、视图、触发器、游标和存储过程.pdf

    MySQL触发器可以响应表上的`INSERT`、`UPDATE`和`DELETE`等操作。创建触发器的基本语法为: ```sql CREATE [DEFINER={user|CURRENT_USER}] TRIGGER {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON table_name FOR EACH ...

    mysql触发器及相关代码示例

    ### MySQL触发器及相关代码示例 #### 一、触发器概念 触发器(Trigger)是一种特殊类型的存储过程,它能够监视数据库中的特定事件,并在这些事件发生时自动执行预定义的操作。触发器不是通过直接调用执行的,而是由...

Global site tag (gtag.js) - Google Analytics