我有 2 个表(具有相同的结构),我希望两个表在提交表单后都进行更新,并且都具有完全相同的数据。
表结构如下:
id |父 ID |名称 |姓氏
id
是主键,这意味着我无法执行以下查询,因为它会引发错误(键“PRIMARY”的重复条目“1”):
INSERT INTO table_2 SELECT * FROM table_1
我的目标是在更新行或添加新行后保持两个表中的数据相同(包括PRIMARY
) >。我怎样才能做到这一点并避免重复条目错误?
最佳答案
由于您的表单位于两个不同的页面上,因此在创建第二条记录时需要某种方式来连接这两个页面。
以语言为例,我会将我的“主要”语言表单放在一页上。将该信息提交到您的“默认/主要”语言表。
然后,在您的“辅助”表中,我将包含一个列出我的“主要”语言的选择输入。这些值将是您的“主要”语言的主键。用户必须选择要连接的父语言。否则第二语言不知道它属于谁。
在您的辅助表上,我不会有自动递增主键。这样您就可以与父表共享相同的 ID。
我将创建与“主”表 ID 字段相关的“辅助”表的外键。
这将允许您运行如下查询:
根本没有测试过 - 并且语法可能不正确。
SELECT * FROM `primary` WHERE something JOIN `secondary` ON `secondary.id` WHERE `secondary.id` = `primary_id`
但是,这会让您了解我在说什么。
编辑
根据我们的对话,听起来您需要在每次插入时删除辅助表(以清除主键)。或I found this thread重置 key 可能会有所帮助。
关于php - 每次提交表单时使 2 个表格相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29630003/