如何在mysql中更新子表

如何在mysql中更新子表,mysql,Mysql,我这里有一个示例表。事件表 +-------------+----------------------+ | incident_id | incident_description | +-------------+----------------------+ | 1 | Accident | | 2 | Homicide | | 3 | Theft | +-

我这里有一个示例表。

事件表

+-------------+----------------------+
| incident_id | incident_description |
+-------------+----------------------+
|           1 | Accident             |
|           2 | Homicide             |
|           3 | Theft                |
+-------------+----------------------+
事件详细信息表:

+--------------------+-------------+-------------+
| incident_detail_id | person_name | incident_id |
+--------------------+-------------+-------------+
|                  1 | errol       |           1 |
|                  2 | neo         |           1 |
|                  3 | aj          |           1 |
|                  4 | mark        |           2 | 
|                  5 | calma       |           2 | 
|                  6 | allan       |           2 |  
|                  7 | dave        |           3 |  
|                  8 | paul        |           3 | 
+--------------------+-------------+-------------+

我提供了一个类似网格视图的视图,允许用户删除和添加事件详细信息表中的项目。我的问题是,如何更新事件详细信息表?我可以添加新项目,但删除。我不知道。我应该清空整个表并插入用户添加的新项吗。但这里的问题是,未删除的现有项目将被删除并再次插入。

如果您不关心
事件详细信息\u id
列的增量超过需要,则可以简单地删除并重新插入记录,而不管您是否更改了事件的详细信息

它使SQL代码变得更简单,但它确实意味着每次编辑时,您的ID都会上升。假设你是自动递增的

将详细信息添加到
凶杀案
后,您将得到:

+--------------------+-------------+-------------+
| incident_detail_id | person_name | incident_id |
+--------------------+-------------+-------------+
|                  1 | errol       |           1 |
|                  2 | neo         |           1 |
|                  3 | aj          |           1 |
|                  9 | mark        |           2 | 
|                 10 | calma       |           2 | 
|                 11 | allan       |           2 |  
|                 12 | new         |           2 |  
|                  7 | dave        |           3 |  
|                  8 | paul        |           3 | 
+--------------------+-------------+-------------+
如果您对此感到满意:

DELETE FROM incident_detail WHERE incident_id = 2;

INSERT INTO incident_detail (person_name, incident_id)
VALUES
    ('mark', 2)
    ('calma', 2)
    ('allan', 2)
    ('new', 2);

您可以在插入之前检查项目是否存在,或者是否必须删除项目。谢谢我试试看,事情是这样的。我担心自动增量列是否会因为持续更新而飙升如此之高。它是什么数据类型?int sir。这就是为什么我要求另一种选择。事实上我就是这么做的,但是当我看到自动增量列时,我惊慌失措。你必须走很长的路才能最大化!有符号整数为2147483647,无符号整数为4294967295。