• mysql 存储过程演示造数据


    创建数据库

    create database if not exists testDB default charset utf8 collate utf8_general_ci;
    

    选择数据库

    USE testDB;
    

    建表

    CREATE TABLE IF NOT EXISTS `test`(
       `id` INT UNSIGNED AUTO_INCREMENT,
       `name` VARCHAR(100) NOT NULL,
       `email` VARCHAR(40) NOT NULL,
       `mobile` BIGINT(11) NOT NULL,
       `submission_date` DATETIME,  
       PRIMARY KEY ( `id` )
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    声明存储过程

    DELIMITER $$  #将语句的结束符号从分号;临时改为两个$$(可以是自定义)
    
    CREATE PROCEDURE proc()  
    BEGIN
        DECLARE num INT;
        SET num = 1;
        truncate table test;
        set autocommit=0;
        set unique_checks=0;
        WHILE num < 10 DO
            INSERT INTO
              `test`
            (
              `id`,
              `name`,
              `email`,
              `mobile`,
    		  `submission_date`
            )
            VALUES (
    		num,
            concat(num,'tester'),
    		concat(num,'tester@qq.com'),
    		15000000000 + num,
            now()
          );
            SET num = num + 1;
        END WHILE;
        set autocommit=1;
        set unique_checks=1;
    END$$
    

    执行完成后,可以将语句的结束符号恢复为分号

    delimiter;
    

    默认情况下,存储过程和默认数据库相关联,如果想指定存储过程创建在某个特定的数据库下,那么在过程名前面加数据库名做前缀。 在定义过程时,使用 DELIMITER $$ 命令将语句的结束符号从分号 ; 临时改为两个 $$,使得过程体中使用的分号被直接传递到服务器,而不会被客户端(如mysql)解释。

    调用存储过程

    call proc();
    

    删除存储过程

    drop procedure proc;
    

    删除表数据

    在测试过程你可能会需要删除数据,可以使用truncate

    TRUNCATE test;
    
    更多学习笔记移步 https://www.cnblogs.com/kknote
  • 相关阅读:
    [THREEJS]坐标高精度问题
    纹理的寻址方式
    [1009]JS语言精髓与编程实践笔记1
    万向锁
    (转)primitive restarting
    西藏游记
    平衡二叉树(AVL tree)
    初探redis事务
    redis发布与订阅
    初探redis分布式锁
  • 原文地址:https://www.cnblogs.com/kknote/p/14866381.html
Copyright © 2020-2023  润新知