Bugs and Features item #3432586, was opened at 2011-11-03 01:33
Message generated for change (Comment added) made by jakubvrana
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=1127745&aid=3432586&group_id=264133
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: MySQL
Group: 3.3.3
>Status: Closed
>Resolution: Wont Fix
Priority: 5
Private: No
Submitted By: RNZ (renoizer)
Assigned to: Jakub Vrána (jakubvrana)
Summary: MySQL - Adminer function "ALTER PROCEDURE"
Initial Comment:
Because closed - MySQL - Adminer function "ALTER PROCEDURE" - ID: 3413220 add this
How about modification this function on next method:
DELIMITER ;;
CREATE PROCEDURE `proc_name_new`(...)
BEGIN
...
END;;
BEGIN
UPDATE `mysql`.`proc`
SET name = `proc_name_timestamp`, specific_name = 'proc_name_timestamp'
WHERE db = 'dbname' AND name = 'proc_name';
UPDATE `mysql`.`proc`
SET name = 'proc_name_new', specific_name = 'proc_name'
WHERE db = 'dbname' AND name = 'proc_name_new';
UPDATE `mysql`.`procs_priv`
SET Routine_name = 'proc_name_timestamp'
WHERE Db = 'dbname' AND Routine_name = 'proc_name';
UPDATE `mysql`.`procs_priv`
SET Routine_name = 'proc_name'
WHERE Db = 'dbname' AND Routine_name = 'proc_name_new';
END;;
DELIMITER ;
FLUSH PRIVILEGES;
This method is safe and allow save history of changes procedure body...
----------------------------------------------------------------------
>Comment By: Jakub Vrána (jakubvrana)
Date: 2013-04-16 10:55
Message:
I'm not going to fiddle with the `mysql` database. But Adminer is now able
to revert the DROP if something goes wrong (if that's the point of this bug
report which is not clear).
----------------------------------------------------------------------
Comment By: RNZ (renoizer)
Date: 2011-11-03 10:16
Message:
Sorry, use next:
DELIMITER ;;
CREATE PROCEDURE `proc_name_new`(...)
BEGIN
...
END;;
DELIMITER ;
BEGIN
UPDATE `mysql`.`proc`
SET name = `proc_name_timestamp`, specific_name = 'proc_name_timestamp'
WHERE db = 'dbname' AND name = 'proc_name';
UPDATE `mysql`.`proc`
SET name = 'proc_name_new', specific_name = 'proc_name'
WHERE db = 'dbname' AND name = 'proc_name_new';
UPDATE `mysql`.`procs_priv`
SET Routine_name = 'proc_name_timestamp'
WHERE Db = 'dbname' AND Routine_name = 'proc_name';
UPDATE `mysql`.`procs_priv`
SET Routine_name = 'proc_name'
WHERE Db = 'dbname' AND Routine_name = 'proc_name_new';
COMMIT;
FLUSH PRIVILEGES;
----------------------------------------------------------------------
Comment By: RNZ (renoizer)
Date: 2011-11-03 02:55
Message:
And may be add user action copy/move routines to other database?
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=1127745&aid=3432586&group_id=264133
|