DELIMITER $$
DROP PROCEDURE IF EXISTS showfile $$
CREATE PROCEDURE showfile(fid BIGINT(20) UNSIGNED)
BEGIN
DECLARE table_idx INT;
SET table_idx = fid >> 32;
SET table_idx = table_idx / 200000;
IF table_idx = 0 THEN
SELECT * FROM db.tb_0 WHERE fileid = fid;
ELSEIF table_idx = 1 THEN
SELECT * FROM db2.tb_1 WHERE fileid = fid;
ELSEIF table_idx = 2 THEN
SELECT * FROM db.tb_2 WHERE fileid = fid;
ELSEIF table_idx = 3 THEN
SELECT * FROM db2.tb_3 WHERE fileid = fid;
ELSEIF table_idx = 4 THEN
SELECT * FROM db.tb_4 WHERE fileid = fid;
ELSEIF table_idx = 5 THEN
SELECT * FROM db2.tb_5 WHERE fileid = fid;
ELSEIF table_idx = 6 THEN
SELECT * FROM db.tb_6 WHERE fileid = fid;
ELSE
SELECT * FROM FILE_ID_OUTOF_RANGE;
END IF;
END $$
DELIMITER ;