/* 创建存储过程 */ drop procedure if exists backup; create procedure backup(in eno int) begin declare tex int default 0; select 1 into tex from information_schema.tables where table_name='emp_copy'; if tex<>1 then create table emp_copy select * from emp where 1=0; end if; insert into emp_copy select * from emp where empno=eno; delete from emp where empno=eno; end; /* 调用存储过程 */ /* call backup(7369); */
时间: 2024-04-12 22:29:53 浏览: 113
存储过程的创建
您好!您的第一个问题是如何创建和调用存储过程。下面是MySQL中创建和调用存储过程的示例代码:
```sql
-- 创建存储过程
DROP PROCEDURE IF EXISTS backup;
DELIMITER //
CREATE PROCEDURE backup(IN eno INT)
BEGIN
DECLARE tex INT DEFAULT 0;
SELECT 1 INTO tex FROM information_schema.tables WHERE table_name = 'emp_copy';
IF tex <> 1 THEN
CREATE TABLE emp_copy SELECT * FROM emp WHERE 1 = 0;
END IF;
INSERT INTO emp_copy SELECT * FROM emp WHERE empno = eno;
DELETE FROM emp WHERE empno = eno;
END //
DELIMITER ;
-- 调用存储过程
CALL backup(7369);
```
请注意,上述代码中的存储过程是基于MySQL语法,您可以根据您使用的数据库系统进行相应的修改。另外,注释掉了`CALL backup(7369);`,如果您要调用存储过程,请取消注释该行。
阅读全文