0

我有一个控制器来保存记录

我的表包含以下字段

这是必须的(它必须在循环中重复)。

我想在表中为员工 ID 插入一条记录,并且不应再次重复。但同一员工可以有多个批次 ID 和多个课程 ID。

如果我将 Unique 作为不再工作的员工 ID 将另一条记录插入同一员工。

这个过程应该在循环内重复,我需要从表中获取最后插入的 ID,并且必须分配另一个表中的学生人数。如果我在 Mysql 中创建一个过程并且如果我调用过程,这一切都很好。但是我的 Linux 服务器没有执行并抛出 MySQL 错误。

这是我的查询和

<code>
  
    $insert_staff_assign = "insert into staff_assign 
    (`main_course_id`, `main_batch_id`, `section`, `semester_course_id`, `emp_mas_staff_id`, `emp_category`) 
    VALUES 
    (:main_course_id, :main_batch_id, :section_id, :semester_course_id, :emp_mas_staff_id, :emp_category) 
    ON DUPLICATE KEY UPDATE 
    main_course_id=:main_course_id, main_batch_id=:main_batch_id, section=:section_id, semester_course_id=:semester_course_id, emp_mas_staff_id=:emp_mas_staff_id, emp_category=:emp_category ";

    insert into staff_assign 
    (`main_course_id`, `main_batch_id`, `section`, `semester_course_id`, `emp_mas_staff_id`, `emp_category`) 
    VALUES 
    (:main_course_id, :main_batch_id, :section_id, :semester_course_id, :emp_mas_staff_id, :emp_category) 
    ON DUPLICATE KEY UPDATE 
    main_course_id=:main_course_id, main_batch_id=:main_batch_id, section=:section_id, semester_course_id=:semester_course_id, emp_mas_staff_id=:emp_mas_staff_id, emp_category=:emp_category 

    insert into staff_assign 
    (`main_course_id`, `main_batch_id`, `section`, `semester_course_id`, `emp_mas_staff_id`, `emp_category`) 
    SELECT * FROM (
        SELECT 
        :main_course_id, :main_batch_id, :section_id, :semester_course_id, :emp_mas_staff_id, :emp_category
    ) AS tmp WHERE NOT IN (
        SELECT emp_mas_staff_id FROM staff_assign WHERE emp_mas_staff_id = $save_emp_mas_staff_id
    ) LIMIT 1
  </code>

请向我发送查询以解决此问题。

以上是我的疑问。

我的表格字段

4

1 回答 1

0

我找到了上述问题的答案。

mysql.proc 问题。

在我的 mysql 中,我的 mysql.proc 已损坏。这就是它不执行上述查询的原因。

要解决上述问题,您需要在 linux 中更新 mysql。

于 2016-12-27T06:45:57.073 回答