使用MySQL,我认为有一种方法可以关联地进行,但也许我错了。
我有一个带有userID的表A,带有userID的表B,它设置为删除A.userID以级联和删除B.userID。
所以我有一个查询(使用CI),在表A中插入信息,我想用一个用户ID(PK,AI)在表B中插入一行。有时它会在B.userID行中插入值,有时它将完全为空值。
关于如何做到这一点的想法?
感谢。
答案 0 :(得分:1)
最简单的方法是编写存储过程来执行插入操作。这可以在事务中插入并接受要添加到B和A中的数据的参数。然后,您查询将调用存储的proc而不是直接插入。
答案 1 :(得分:1)
我真的需要看到实际的查询,但我相信这正是你要找的。 p>
在CodeIgniter中插入数据时,您可以像这样获得插入的主键。
$this->db->insert('A',$data); //insert into the table with 'userID' as PK, AI
$id_of_insert = $this->db->insert_id();
$data_for_b = array(
'field' => 'value',
...
'userID' => $id_of_insert //insert the captured PK from A and place in the FK field of B
);
$this->db->insert('B', $data_for_b);
答案 2 :(得分:0)
在这种方法中你应该考虑以下几点:
如果你的auto_increment是BIGINT,它会给出错误的值。
如果您在读取值之前插入了某些内容并且其他人插入了某些内容,则可能会出现错误的ID。我建议用不同的东西来读取值。 (例如用户注册中的昵称)。