Skip to content

Instantly share code, notes, and snippets.

@jonathanvx
jonathanvx / convertall.sh
Created May 21, 2012 14:24
Burst Convert all tables to InnoDB
#!/bin/bash
MAX1=`mysql -e"select @@global.max_connections;" -N -B`
MAX=$[$MAX1 - 5]
echo "select table_name from information_schema.tables where engine='myisam' and table_schema='dbname' order by DATA_LENGTH desc limit $MAX;" | mysql --database=dbname -B -N | awk '{print "mysql dbname -e\"set sql_log_bin=0; ALTER TABLE", $1, "engine=innodb;\" &"}' > /tmp/massconvert.sh
bash /tmp/massconvert.sh
rm -f /tmp/massconvert.sh
echo "select table_name from information_schema.tables where engine='myisam' and table_schema='dbname' order by DATA_LENGTH desc limit $MAX,99999;" | mysql --database=dbname -B -N | awk '{print "set sql_log_bin=0; ALTER TABLE", $1, "engine=innodb;"}' | mysql --database=dbname -f &
echo $sql | mysql 2>&1 | awk '{print $0 ">", sql}' sql="$sql" >> $errorlog
@jonathanvx
jonathanvx / gist:64cb8320ab83d3264893
Last active August 29, 2015 14:16
Update By Date - Stored Procedure
delimiter $$
drop procedure if exists update_by_date$$
CREATE PROCEDURE update_by_date(IN startdate DATE, IN enddate date)
PROC:BEGIN
DECLARE idate date;
DECLARE cr BIGINT;
DECLARE done INT DEFAULT FALSE;
-- requires data_dimension table - be found in my github repo
DECLARE curs1 CURSOR FOR SELECT date FROM date_dimension WHERE date between startdate and enddate;