no ok ale baza zawsze bedzie istnieć
chodzi mi o coś co pozwoli w skrypcie zatrzymać jego dalsze wykonywanie
ogólnie przerwanie wykonywania skryptu aql po wykryciu niezgodności
DROP PROCEDURE IF EXISTS `checkUpdate`;
delimiter //
CREATE PROCEDURE checkUpdate(IN dbname VARCHAR(125))
BEGIN
IF dbname!=getDbName() THEN
SELECT COUNT(*) FROM `total`; -- błędne zapytanie i tu chę kończyc działanie skryptu sql
END IF;
END;
delimiter ;
i wykozystanie
USE baza_dev_test;
INSERT INTO `baza_dev_test`.`test` ( `id` , `name` ) VALUES ( NULL , 'Pierwszy insert po wyborze bazy' );
CALL checkUpdate('test_dev');
INSERT INTO `baza_dev_test`.`test` ( `id` , `name` ) VALUES ( NULL , 'Indert po prawidłowo wykonanej procedurze, powinien się dodać ' );
CALL checkUpdate('test_ded');
-- nie taka baza ( lub wersja, zależnie co bedę sprawdzał ) i chę aby zakończył działanie
INSERT INTO `baza_dev_test`.`test` ( `id` , `name` ) VALUES ( NULL , 'Niewykonany insert po procedurze z crash-em' );
wywołanie
Kod
mysql> source c:/sql.sql;
Database changed
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
ERROR 1146 (42S02): Table baza_dev_test.total' doesn't exist //ok tu się wywala bo tak ma byc :)
Query OK, 1 row affected (0.00 sec) //ale juz tego nie chcę aby wykonywał
da się cos takiego osiągnąć?? i jeśli tak to już prawie jestem w domu