字体有点问题先说下不好意思。
是这样的我用MYSQL做存储过程测试第一次成功了 接着我想做个对多表进行操作的于是我创建了2个表
第一个perducts这个表里有2个字段 name sexid其中sexid是外键 第2张表是专门做性别的 2个字段SexId是主键 sex才是实际插入的性别
然后大家来看看我这个存储过程
CREATE PROCEDURE `InsertPSex`(
name varchar(20),
Sex1 char(4)
)BEGIN
declare SID int(11)
select SID=SexId from productssex where Sex=Sex1
insert into products(name,sexid) values(name,SID);
END;
接着执行call InsertPSex('Su','女');就会有错误
错误要上传图片所以这里就不上传了 应该是存储过程的语法 这个临时变量的声名和赋值可能那里出问题了 我今天才学 以前只会SQLSERVER的存储过程
麻烦大家帮忙看看 回答问题是种美德谢谢共同进步!

解决方案 »

  1.   


    delimiter ||
    CREATE PROCEDURE `InsertPSex`(
    f_name varchar(20),
    Sex1 char(4)
    )BEGIN
    declare SID int(11)
    select SexId from productssex where Sex=Sex1 into SID;
    insert into products(name,sexid) values(f_name,SID);
    END||
    delimiter ;
      

  2.   

    还是不行啊,,,
    运行call InsertPSex('su','男')
    就会提示错误incorrect integer value '男' for column 'Sex' at row 1
    麻烦大家在给看看 搞了好几天了
      

  3.   

     麻烦 yueliangdao0608 在看看
    就是做了2个表 一个表里有个性别然后外表里用户输入个男 就在存储过程里先查到用户输入的性别对应的ID然后在查询出后把这个ID给一个临时变量了 给主表里插的时候也是茶这个对应的ID。。谢谢
      

  4.   


    delimiter ||
    CREATE PROCEDURE `InsertPSex`(
    f_name varchar(20),
    Sex1 char(4)
    )BEGIN
    declare SID int default 0;
    select SexId from productssex where Sex=Sex1 into SID;
    insert into products(name,sexid) values(f_name,SID);
    END||
    delimiter ;
      

  5.   

    对不起啊班主大哥我不是故意找事只是还是不行运行call InsertPSex('su','男') 
    就会提示错误incorrect integer value '男' for column 'Sex' at row 1