si è vero, quindi prova così:Originariamente inviato da luca200
Comunque mi pare che tu abbia una DECLARE un po' troppo in basso. Devono essere le prime istruzioni della s.p.
dovrebbe funzionare, se non funziona così prova a scaricarti un programma di gestione database (tipo EMS SQL Manager 2005 for MySQL) e prova da li...perchè l'ho appena testata così e funziona.codice:DELIMITER $$ DROP PROCEDURE IF EXISTS mysql.prova $$ CREATE PROCEDURE mysql.prova() BEGIN DECLARE error BOOLEAN DEFAULT FALSE; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET error = TRUE; SET AUTOCOMMIT = 0; DROP DATABASE IF EXISTS dbprova; CREATE DATABASE dbprova; CREATE TABLE dbprova.table1 ( nome char(10), cognome char(10)); INSERT INTo dbprova.table1 SELECT * FROM dbold.pippo; IF error THEN ROLLBACK; ELSE COMMIT; END IF; END; $$ DELIMITER ;
Questo è il DDL funzionante che ottengo:
codice:CREATE PROCEDURE `prova`() NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN DECLARE error BOOLEAN DEFAULT FALSE; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET error = TRUE; SET AUTOCOMMIT = 0; DROP DATABASE IF EXISTS dbprova; CREATE DATABASE dbprova; CREATE TABLE dbprova.table1 ( nome char(10), cognome char(10)); INSERT INTo dbprova.table1 SELECT * FROM dbold.pippo; IF error THEN ROLLBACK; ELSE COMMIT; END IF; END;

Rispondi quotando