我有两个表:employee
和employee_group
。插入到第一个表后,我将从该表中获取最后插入的id。接下来我需要插入表employee_group
。SQL:
INSERT INTO employee_group (employee_id, group_id)
SELECT {$currentEmpId}, group_id
FROM employee_group
WHERE employee_id = {$anyId}
MySQL已返回TRUE。但记录尚未插入。
我注意到,如果尝试为以前插入的员工插入记录,则查询将成功。示例:
- 插入到员工,将返回
$currentEmpId
作为上次插入的id INSERT INTO employee_group (employee_id, group_id) SELECT {$currentEmpId - 1}, group_id FROM employee_group WHERE employee_id = {$anyEmpId}
或者,如果我尝试同时插入当前员工和以前员工的记录,那么第一次查询将不成功,但第二次查询可以。
数据库没有触发器、外键或函数。什么都没有,只有数据。
我陷入僵局。
UPD:如果我把记录带到php变量中,然后对它进行foreach,并像INSERT INTO employee_group (employee_id, group_id) VALUES (xxx, yyy)
一样将每个记录作为一个项目插入,我也会遇到这个问题。
INSERT INTO employee_group (employee_id, group_id)
VALUES({$toEmpId},{SELECT group_id FROM employee_group WHERE employee_id = {$fromEmpId}})
看看吧。。
试试这个
INSERT INTO employee_group (employee_id, group_id)
VALUES({$toEmpId},{SELECT {$toEmpId}, group_id FROM employee_group WHERE employee_id = {$fromEmpId}})