创建数据库
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;