Mysql 是否使用触发器从另一个表向一个表插入新行?

Mysql 是否使用触发器从另一个表向一个表插入新行?,mysql,triggers,Mysql,Triggers,我有两张桌子 收藏夹表 ---------------------------------------------------------------------- | FavouritesID | CompanyID | CustomerID | ProfilePhoto | CompanyName | ---------------------------------------------------------------------- |

我有两张桌子

收藏夹表

----------------------------------------------------------------------
| FavouritesID | CompanyID | CustomerID | ProfilePhoto | CompanyName |
----------------------------------------------------------------------
|                                                                    |
|                                                                    |
|                                                                    |
----------------------------------------------------------------------
-------------------------------------------
| CompanyID | CompanyName | ProfilePhoto  |
-------------------------------------------
|      1    | Nike        |http://loca..  |
|      2    | Adidas      |http://loca..  |
|      3    | PaulSmith   |http://loca..  |
-------------------------------------------
配置文件表

----------------------------------------------------------------------
| FavouritesID | CompanyID | CustomerID | ProfilePhoto | CompanyName |
----------------------------------------------------------------------
|                                                                    |
|                                                                    |
|                                                                    |
----------------------------------------------------------------------
-------------------------------------------
| CompanyID | CompanyName | ProfilePhoto  |
-------------------------------------------
|      1    | Nike        |http://loca..  |
|      2    | Adidas      |http://loca..  |
|      3    | PaulSmith   |http://loca..  |
-------------------------------------------
我想使用
CompanyID
CompanyName
ProfilePhoto
插入收藏夹表中

因此,当一行插入到Favorites表ex CompanyID=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

我的代码中有哪些错误?它不起作用

为什么需要将同一数据存储两次?我总是被教导不要在多个表中存储相同的信息。如果需要收藏夹表,为什么不存储:

| FavouritesID | CompanyID | CustomerID |

然后,如果您需要配置文件表中的其他信息,请从收藏夹表中找到带有公司ID的信息

我认为您可以在插入后使用

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;

你想做的事情毫无意义,你试图实现触发器的尝试也没有意义。当您想知道
收藏夹的
配置文件照片
时,请在
配置文件
表中加入