0
我想创建一个存储过程,将数据插入我的其中包含两个外键(一个为会员和一个用于中心)存储过程和外键检查
有了直接的SQL(通过phpMyAdmin的)加入表我可以更改表中的值,但是使用存储过程我只会收到错误:1452.
如何在不导致错误并且不完全禁用外键约束的情况下写入表。我明白没有什么可以防止人们输入错误的数值,这个想法是用户界面最终会阻止这种情况。但是,如果数据库中有更好的方法,我很乐意听到它。
的作品的SQL是:
INSERT INTO `tblmembers_has_tblcentres` (`tblMembers_MemberID`,
`tblCentres_CentreID`, `DateMemberJoinedCentre`) VALUES ('92', '2',
CURRENT_TIMESTAMP);
我的存储过程是这样的:
CREATE DEFINER=`root`@`localhost` PROCEDURE `Add_Memb_to_Centre`(IN `iMember`
INT, IN `iCentre` INT)
SQL SECURITY INVOKER
INSERT INTO `tblmembers_has_tblcentres` (`tblMembers_MemberID`,
`tblCentres_CentreID`, `DateMemberJoinedCentre`) VALUES ('iMember', 'iCentre',
CURRENT_TIMESTAMP)