Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DELIMITER //
- CREATE PROCEDURE test()
- BEGIN
- DECLARE maxwf_fir INT DEFAULT 0;
- SET maxwf_fir = (SELECT MAX(wf_fir) FROM establishment);
- WHILE maxwf_fir > 0 DO
- UPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SET
- wf_fir = wf_fir-1,
- e.wf_est = e.wf_est-1,
- i.labor = 2,
- i.labor_periods = 0,
- i.establishment_id = 0
- WHERE (e.wf_hir <= e.wf_fir)
- AND (wf_fir > 0);
- UPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SET
- e.counter1 = e.counter1+1
- WHERE (e.wf_hir <= e.wf_fir)
- AND (wf_fir > 0);
- UPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SET
- e.counter1 = 0,
- e.counter2 = e.counter2+1
- WHERE (e.wf_hir <= e.wf_fir)
- AND (wf_fir > 0)
- AND (e.counter1 = e.wf_est);
- SET maxwf_fir = maxwf_fir-1;
- END WHILE;
- END//
- DELIMITER ;
- CALL test;
- DROP PROCEDURE test;
- std::stringstream query4;
- //query4 << "drop procedure if exists loop;n";
- query4 << "DELIMITER //n";
- query4 << "CREATE PROCEDURE loop()n";
- query4 << "BEGINn";
- query4 << "tDECLARE maxwf_fir INT DEFAULT 0;n";
- query4 << "tSET maxwf_fir = (SELECT MAX(wf_fir) FROM establishment);n";
- query4 << "tWHILE maxwf_fir > 0 DOn";
- query4 << "ttUPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SETn";
- query4 << "tte.wf_fir = e.wf_fir-1,n";
- query4 << "tte.wf_est = e.wf_est-1,n";
- query4 << "tti.labor = 2,n";
- query4 << "tti.labor_periods = 0,n";
- query4 << "tti.establishment_id = 0n";
- query4 << "ttWHERE (e.wf_hir <= e.wf_fir)n";
- query4 << "ttAND (e.wf_fir > 0)n";
- query4 << "ttAND e.temp < POW("<< Coeffs::gamma67 << ", e.counter2)*" << random << ";n";
- query4 << "ttUPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SETn";
- query4 << "tte.counter1 = e.counter1+1n";
- query4 << "ttWHERE (e.wf_hir <= e.wf_fir)n";
- query4 << "ttAND NOT (e.temp < POW("<< Coeffs::gamma67 << ", e.counter2)*" << random << ")n";
- query4 << "ttAND (wf_fir > 0);n";
- query4 << "ttUPDATE individual AS i LEFT JOIN establishment AS e USING (establishment_id) SETn";
- query4 << "tte.counter1 = 0n";
- query4 << "tte.counter2 = e.counter2+1n";
- query4 << "ttWHERE (e.wf_hir <= e.wf_fir)n";
- query4 << "ttAND NOT (e.temp < POW("<< Coeffs::gamma67 << ", e.counter2)*" << random << ")n";
- query4 << "ttAND e.counter1 = e.wf_estn";
- query4 << "ttAND (wf_fir > 0);n";
- query4 << "ttSET maxwf_fir = maxwf_fir-1;n";
- query4 << "tEND WHILE;n";
- query4 << "END//n";
- query4 << "DELIMITER ;n";
- query4 << "CALL loop;n";
- query4 << "DROP PROCEDURE loop;n";
- stmt->execute(query4.str());
- terminate called after throwing an instance of 'sql::SQLException'
- what(): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //
- CREATE PROCEDURE loop()
- BEGIN
- DECLARE maxwf_fir INT DEFAULT 0;
- SE' at line 1
- Aborted (core dumped)
- query4 << "DELIMITER //n";
- `loop()`
- query4 << "END//n";
- query4 << "END;n"; // semi-colon is optional, if it is last statement in the sp
- query4 << "DELIMITER ;n";
- query4 << "CALL loop;n";
- query4 << "DROP PROCEDURE loop;n";
- query4 << "CALL `loop`();n";
- query4 << "DROP PROCEDURE `loop`;n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement