2016-04-07 21 views
0

私は注文と呼ばれるテーブルを持っています。注文がそれに挿入されると、私はそれにsellerID(通知のユーザーID) Notification.Messageに格納されます。MYSQL注文が挿入されたときにトリガーされた通知が別のテーブルに挿入された

CREATE TABLE `Order` (
`OrderID` int(11) NOT NULL AUTO_INCREMENT, 
`productID` int(11) NOT NULL, 
`productName` varchar(255) DEFAULT NULL, 
`productPrice` int(11) DEFAULT NULL, 
`SellerID` int(11) DEFAULT NULL, 
`BuyerID` int(11) DEFAULT NULL, 
`DateSold` varchar(45) DEFAULT NULL, 
PRIMARY KEY (`OrderID`), 

); 


CREATE TABLE `Notifications` (
`NotificationID` int(11) NOT NULL AUTO_INCREMENT, 
`userID` int(10) NOT NULL, 
`Message` varchar(255) DEFAULT NULL, 
`Viewed` varchar(255) DEFAULT NULL, 
PRIMARY KEY (`NotificationID`); 

彼らは私の二つのテーブル ですこれは私が試したものです:

DELIMITER $$ 

CREATE TRIGGER productTrigger 
AFTER INSERT 
ON Order FOR EACH ROW 

BEGIN 
DECLARE ui,pn VARCHAR(50); 

SELECT productName INTO pn FROM Order; 
SELECT userID INTO ui FROM Product; 
INSERT INTO Notifications(userID,Message) VALUES(ui,pn); 

end $$ 

DELIMITER ; 

答えて

1

試してみてください。

DELIMITER $$ 

CREATE TRIGGER `productTrigger` AFTER INSERT ON `Order` 
FOR EACH ROW 
BEGIN 
    /*DECLARE ui,pn VARCHAR(50); 

    SELECT productName INTO pn FROM Order; 
    SELECT userID INTO ui FROM Product; 
    INSERT INTO Notifications(userID,Message) VALUES(ui,pn);*/ 

    INSERT INTO `Notifications` 
    (`userID`, `Message`) 
    VALUES 
    (NEW.`SellerID`, NEW.`productName`); 
END$$ 

DELIMITER ; 
関連する問題