求一个mysql存储过程的语句写法
求一个存储过程的语句写法需求如下插入表A内容(编号,姓名)这个编号是自增然后查询刚才插入的编号值然后继续插入表X内容(编号,物理满分)要求表A的编号和表X的编号相同,表X...
求一个存储过程的语句写法 需求如下
插入表A 内容 (编号,姓名)这个编号是自增
然后查询 刚才插入的编号值
然后继续插入表X 内容(编号,物理满分)
要求表A的编号和表X的编号相同,表X的编号非自增,过程中如果存在操作失败则全部回滚
调用存储过程的时候 传递信息包含(姓名,物理满分,和表X的表名)
库是mysql 展开
插入表A 内容 (编号,姓名)这个编号是自增
然后查询 刚才插入的编号值
然后继续插入表X 内容(编号,物理满分)
要求表A的编号和表X的编号相同,表X的编号非自增,过程中如果存在操作失败则全部回滚
调用存储过程的时候 传递信息包含(姓名,物理满分,和表X的表名)
库是mysql 展开
1个回答
展开全部
create table t_A(id int primary key auto_increment,name varchar(20));
create table t_X(id int,score int);
CREATE DEFINER=`root`@`localhost` PROCEDURE `mypro`(in sname varchar(20),in score int,in tableName varchar(50))
BEGIN
insert into t_A(name) value (sname);
set @id=(select max(id) from t_A);
set @stmt = concat("insert into ",tableName," values(",@id,",",score,")");
prepare stmt from @stmt;
execute stmt;
END
create table t_X(id int,score int);
CREATE DEFINER=`root`@`localhost` PROCEDURE `mypro`(in sname varchar(20),in score int,in tableName varchar(50))
BEGIN
insert into t_A(name) value (sname);
set @id=(select max(id) from t_A);
set @stmt = concat("insert into ",tableName," values(",@id,",",score,")");
prepare stmt from @stmt;
execute stmt;
END
追问
不好意思 刚看到 这个没有事务吧? 如果提交出错 不能回滚吧?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询