2016-12-23 6 views
0

のために利用できない場合、私はレコードを保存するためのコントローラを持って挿入しMySQLの特定の列が同じ従業員

私の表は、これは(それはLOOPで繰り返す必要があります)しなければならないですフィールズ

BELOW含まれています。

従業員IDのテーブルにレコードを1回挿入する必要があります。繰り返しはしないでください。しかし、同じ従業員は複数のバッチIDと複数のコースIDを持つことができます。

別のレコードを同じ従業員に挿入するために再度動作しない従業員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>

私にこの問題を取り除くために、クエリを送信してくださいです。

上記は私の質問です。

My Table Fields

答えて

0

私は上記の質問に対する答えを見つけました。

mysql.proc problem。

私のmysqlのmysql.procが壊れていました。それが上記のクエリを実行しない理由です。

上記の問題を修正するには、linuxでmysqlを更新する必要があります。

関連する問題