我有2张桌子
收藏夹表
----------------------------------------------------------------------
| FavouritesID | CompanyID | CustomerID | ProfilePhoto | CompanyName |
----------------------------------------------------------------------
| |
| |
| |
----------------------------------------------------------------------
个人资料表
-------------------------------------------
| CompanyID | CompanyName | ProfilePhoto |
-------------------------------------------
| 1 | Nike |http://loca.. |
| 2 | Adidas |http://loca.. |
| 3 | PaulSmith |http://loca.. |
-------------------------------------------
我想使用CompanyName
ProfilePhoto
和CompanyID
插入收藏夹表格
因此,当一行插入到收藏夹表中,而公司ID = 1时,CompanyName=Nike
并且ProfilePhoto=htpp://local...
将被插入到收藏夹表格,从个人资料表中获取信息。
这是我到目前为止所做的:
CREATE TRIGGER `Favourites` BEFORE INSERT ON `Favourites`
FOR EACH ROW BEGIN
INSERT INTO Favourites SET ProfilePhoto = (SELECT ProfilePhoto FROM Profile WHERE NEW.CompanyID = CompanyID);
END
我的代码中有哪些错误?它不起作用
答案 0 :(得分:0)
为什么需要存储两次相同的数据?我总是被教导不要在多个表中存储相同的信息。如果您需要收藏夹表,为什么不只是存储:
| FavouritesID | CompanyID | CustomerID |
然后,如果您需要配置文件表中的其他信息,请从收藏夹表中找到公司ID
答案 1 :(得分:0)
我想你可以使用插入后 .............
CREATE OR REPLACE TRIGGER orders_after_insert
AFTER INSERT
ON orders
FOR EACH ROW
DECLARE
v_username varchar2(10);
BEGIN
-- Find username of person performing the INSERT into the table
SELECT user INTO v_username
FROM dual;
-- Insert record into audit table
INSERT INTO orders_audit
( order_id,
quantity,
cost_per_item,
total_cost,
username )
VALUES
( :new.order_id,
:new.quantity,
:new.cost_per_item,
:new.total_cost,
v_username );
END;