如何更新其他相关表中的PRIMARY KEY / FOREIGN KEY?

时间:2013-10-29 13:46:30

标签: php mysql database foreign-keys primary-key

  • wall_id(P)
  • wall_name
  • wall_views
  • wall_downloads
  • wall_thumbnail_path

4, 'wall4', '125', '574', '../.../thumbnail_wall4.jpg'

类型

  • TYPE_ID
  • TYPE_NAME

'1', 'Desktop') ('2', 'Phone') ('3', 'Tablet'

wall_types

  • wall_id(P)(F)
  • type_id(P)(F)

4, 1

以上是我的表格,我想要做的是自动从wall_id = 4表中获取walls并将其存储在wall_types表中,与type_id相同来自types表。如何才能做到这一点?什么是代码(PHP代码)或SQL语句来实现这一目标?谢谢!

注意:

    {li>

    wall_id位于wall_types表格中的wall_idwalls

    {li>

    type_id位于types表格中的type_idtypes

2 个答案:

答案 0 :(得分:1)

下面的查询会在您的wall_types表中插入一个新关系,其中' 1'来自用户输入(用户选择'桌面'):

INSERT INTO wall_types (wall_id, type_id) VALUES (5,1);

如果您想在插入新墙后立即执行此操作,请执行此操作。 id为(当然)未知的行,你可以使用LAST_INSERT_ID(),这将包含最后插入的id,因此你需要在' wall'之后立即执行此查询。插入查询:

INSERT INTO wall_types (wall_id, type_id) VALUES (LAST_INSERT_ID(),1);

答案 1 :(得分:0)

如果您想“自动”执行此操作,您可以使用触发器来更新重新关系。 另一种方法是删除wall_types中的关系,并使用更新的值重新创建。