我有4个表:狗,主人,品种,和owners_dogs。
每个表都有自己的主键id,其中owners_dogs是连接表。
现在我要INSERT INTO dogs, 1个主人,同时他的2只狗到dogs表。此外,我想在owner表中再插入2个所有者,每个所有者拥有1只单独的狗。
我看到插入owner表不会更新结表,也不会更新狗表。
我只是添加一个owner_id到连接表首先,然后使用相同的id插入到owner_table时?
这是有问题的,因为您不能为属于owners
表的其他列指定值。
也就是说,我假设owners
表有用于所有者姓名、电子邮件和可能的其他属性的列。但是如果您使用INSERT INTO dogs
甚至INSERT INTO owners_dogs
,则只能为这些表的列指定值。
你可以写一个触发器来插入一行到owners
表,但你必须依赖默认值或其他东西。然后可以使用UPDATE owners
来设置其他属性。但是,如果您必须执行第二个SQL语句来填充其他属性,那么为什么不在后续插入中引用之前将其作为INSERT INTO owners
呢?