DELIMITER // CREATE PROCEDURE `eobaru`.`add_new_topic` (in_forum_id INT, in_author_id INT, in_subject VARCHAR(128), in_body TEXT) BEGIN START TRANSACTION; INSERT INTO topics (forum_id, name, author_id) VALUES (in_forum_id, in_subject, in_author_id); DECLARE _topic_id INT; SET _topic_id = SELECT LAST_INSERT_ID(); INSERT INTO posts (topic_id, author_id, date, revision_id, revisions, body) VALUES (_topic_id, in_author_id, NOW(), 1, 1, in_body); SELECT LAST_INSERT_ID() AS _post_id; INSERT INTO post_revisions (post_id, revision_id, date, body, editor) VALUES (_post_id, 1, NOW(), in_body, in_author_id); UPDATE topics SET first_post_id = _post_id, last_post_id = _post_id WHERE id = topic_id; UPDATE profile SET post_count = post_count + 1, topic_count = topic_count + 1 WHERE id = in_author_id; COMMIT; END//
A oto błąd, który mi wywala:
Cytat
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 'DECLARE _topic_id INT;
SET _topic_id = SELECT LAST_INSERT_ID();
INSERT I' at line 5
SET _topic_id = SELECT LAST_INSERT_ID();
INSERT I' at line 5
Da się to jakoś naprawić?