私は一般的にSQLにかなり慣れていませんが、MySQLにはさらに慣れていないため、つまずきにぶつかりました。元のフィールドがnullでない場合、あるフィールドの値を別のフィールドにコピーするプロシージャを使用しようとしています。このプロシージャは、テーブルが更新されるか、新しい行が挿入されるたびにトリガーによって呼び出されます。これが私がこれまでに持っているものです:
-- WORK_NOTES_PROCEDURE - This copies the contents of the estimate notes to the work order notes if the original estimate had any notes with it.
DROP PROCEDURE IF EXISTS 'WORK_NOTES_PROCEDURE';
DELIMITER $$
CREATE PROCEDURE WORK_NOTES_PROCEDURE()
BEGIN
DECLARE var_temp VARCHAR(50);
SET var_temp := (SELECT ESTIMATE_NOTES FROM ESTIMATES WHERE ESTIMATES.ESTIMATE_NUMBER = WORK_ORDERS.ESTIMATE_NUMBER);
IF var_temp IS NOT NULL THEN
UPDATE WORK_ORDERS SET WORK_ORDER_NOTES = var_temp WHERE WORK_ORDERS.ESTIMATE NUMBER = ESTIMATES.ESTIMATE_NUMBER;
END IF;
END$$
DELIMITER ;
私が得ているエラーは、var_temp に値を割り当てている行の構文エラーです。