使用以下表格:
Party.(PartyId, PartyTypeCode)
和Member.(MemberId (FK), Name)
我想在创建新Party后用PartyId的值填写MemberId列。
我知道下面的SQL是错误的,但这就是为什么我正在寻求帮助以使其正确。
CREATE TRIGGER tgr_member_create AFTER INSERT on Party
FOR EACH ROW BEGIN
IF NEW.PartyTypeCode = 'M' THEN
INSERT Member(MemberId)
VALUES('Party.PartyId')
END IF;
END;
感谢Nanne的意见,这是有效的:
DELIMITER $$
CREATE TRIGGER tgr_member_create AFTER INSERT on Party
FOR EACH ROW BEGIN
IF NEW.PartyTypeCode = 'M' THEN
INSERT Member (MemberId,Name)
VALUES(NEW.PartyId, 'someName');
END IF;
END;$$
DELIMITER ;
答案 0 :(得分:1)
您的值应该调用NEW
行,就像我猜的partytypecode一样?我假设
delimiter $$
CREATE TRIGGER tgr_member_create AFTER INSERT on Party
FOR EACH ROW BEGIN
IF NEW.PartyTypeCode = 'M' THEN
INSERT Member (MemberId,Name)
VALUES(NEW.PartyId, 'someName')
END IF;
END;$$
注意分隔符代码。因为您在内部使用;
,所以不能将其用作普通的“命令结束”令牌。这就是&&
用于调试: 在触发器外执行查询时,请确保查询有效:
INSERT Member (MemberId,Name)
VALUES(party-id goes here, 'someName')
那里可能有一个小错误。明显地填写你的partyId。
答案 1 :(得分:-1)
试试这个
CREATE TRIGGER tgr_member_create AFTER INSERT on Party
FOR EACH ROW BEGIN
IF NEW.PartyTypeCode = 'M' THEN
INSERT Member(MemberId)
VALUES('New.PartyId')
END IF;
END;