I found this answer for how to have conditional logic for execution of mysql statements (https://stackoverflow.com/a/7537348/627473). Seems to work great.
But I need to find a way to execute code for a very specific condition. The code can only execute if the database supports FULL TEXT indexing for innodb. This happens in mysql 5.6.4 or greater. BUT I also need this to work for maria db other forks of mysql.
I am sure I could find a way for mysql version; but I don't really like relying on a version and would rather relying on feature detection.
Is there a way to do this?
EDIT: Here is code. I just have on more error that I am not sure can be fixed.
In phpMyAdmin the error
"#2014 - Commands out of sync; you can't run this command now" is displayed. This does NOT happen from CLI. Is there a way around this?
delimiter // create procedure update_phppos() begin set @supports_ft := (SELECT COUNT(*) FROM information_schema.GLOBAL_VARIABLES WHERE Variable_name = 'innodb_ft_cache_size'); if @supports_ft > 0 then REPLACE INTO `phppos_app_config` (`key`, `value`) VALUES ('version', '15.0'); else SELECT 'An error has occured. You MUST have mysql 5.6.4 or higher to update php point of sale' as 'ERROR'; end if; end; // delimiter ; -- Execute the procedure call update_phppos(); -- Drop the procedure drop procedure update_phppos;