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
原文地址:https://www.cnblogs.com/kknote/p/14866381.html