我有2个表(结构相同),我希望在表单提交后都更新,并且两者都有完全相同的数据。
表格结构如下:
id | parent_id |名字|姓
id
是主键,这意味着我无法执行以下查询,因为它会引发错误(重复条目' 1'对于键' PRIMARY') :
INSERT INTO table_2 SELECT * FROM table_1
我的目标是在行更新或添加新行后,在两个表格中保持数据相同(包括PRIMARY
)。如何执行此操作并避免重复条目错误?
答案 0 :(得分:1)
由于您的表单位于两个不同的页面上,因此在创建第二个记录时需要一些方法来连接这两个页面。
以语言为例,我会在一个页面上使用“主要”语言表单。将该信息提交到“默认/主要”语言表。
然后,在您的“辅助”表格中,我将包含一个列出我的“主要”语言的选择输入。这些值将是您“主要”语言的主键。用户必须选择要连接的父语言。否则,第二语言不知道它属于谁。
在您的辅助表上,我没有auto_incrementing主键。这样,您就可以与父表共享相同的ID。
我会创建一个与“primary”表id字段相关的“secondary”表的外键。
这将允许您运行以下查询:
根本没有测试 - 可能语法不正确。
SELECT * FROM `primary` WHERE something JOIN `secondary` ON `secondary.id` WHERE `secondary.id` = `primary_id`
但是,这会让你知道我在说什么。
修改强>
根据我们的对话,听起来您需要在每个插页上删除辅助表(以清除主键)。或I found this thread重置可能有用的密钥。