Advertisement
Guest User

ru.so/778781/ - tables and procedures

a guest
Feb 10th, 2018
389
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.67 KB | None | 0 0
  1. CREATE TABLE `unwind-genes`
  2. (
  3.   `id` int(11) NOT NULL AUTO_INCREMENT,
  4.   `chr` varchar(2) NOT NULL,
  5.   `hkey` int(11) NOT NULL,
  6.   `gene_id` int(11) NOT NULL,
  7.   `left` int(11) NOT NULL,
  8.   `right` int(11) NOT NULL,
  9.   PRIMARY KEY (`id`),
  10.   UNIQUE INDEX (`chr`, `hkey`, `gene_id`)
  11. ) ENGINE=MyISAM;
  12.  
  13.  
  14. CREATE TABLE `unwind-repeats`
  15. (
  16.   `id` int(11) NOT NULL AUTO_INCREMENT,
  17.   `chr` varchar(2) NOT NULL,
  18.   `hkey` int(11) NOT NULL,
  19.   `repeat_id` int(11) NOT NULL,
  20.   `left` int(11) NOT NULL,
  21.   `right` int(11) NOT NULL,
  22.   PRIMARY KEY (`id`),
  23.   UNIQUE INDEX (`chr`, `hkey`, `repeat_id`)
  24. ) ENGINE=MyISAM;
  25.  
  26.  
  27. DELIMITER $$
  28. CREATE PROCEDURE `proc_unwind_genes`()
  29. BEGIN
  30.     DECLARE fetched INT DEFAULT TRUE;
  31.     DECLARE v_chr VARCHAR(2);
  32.     DECLARE v_left INT;
  33.     DECLARE v_right INT;
  34.     DECLARE v_id INT;
  35.     DECLARE hkey INT;
  36.     DECLARE hkey_max INT;
  37.     DECLARE cur_genes CURSOR FOR
  38.         SELECT `chr`, `left`, `right`, `id`
  39.         FROM `genes-g38-201505`;
  40.     DECLARE CONTINUE HANDLER FOR NOT FOUND SET fetched = FALSE;
  41.  
  42.     TRUNCATE TABLE `unwind-genes`;
  43.  
  44.     OPEN cur_genes;
  45.     FETCH cur_genes INTO v_chr, v_left, v_right, v_id;
  46.  
  47.     WHILE (fetched) DO
  48.         SET hkey = v_left div 10000;
  49.         SET hkey_max = v_right div 10000;
  50.  
  51.         WHILE (hkey <= hkey_max) DO
  52.             INSERT INTO `unwind-genes`
  53.             ( `chr`, `hkey`, `left`, `right`, `gene_id` )
  54.             VALUES
  55.             ( v_chr, hkey, v_left, v_right, v_id );
  56.  
  57.             SET hkey = hkey + 1;
  58.         END WHILE;
  59.  
  60.         FETCH cur_genes INTO v_chr, v_left, v_right, v_id;
  61.     END WHILE;
  62.  
  63.     CLOSE cur_genes;
  64. END$$
  65. DELIMITER ;
  66.  
  67.  
  68. DELIMITER $$
  69. CREATE PROCEDURE `proc_unwind_repeats`()
  70. BEGIN
  71.     DECLARE fetched INT DEFAULT TRUE;
  72.     DECLARE v_chr VARCHAR(2);
  73.     DECLARE v_left INT;
  74.     DECLARE v_right INT;
  75.     DECLARE v_id INT;
  76.     DECLARE hkey INT;
  77.     DECLARE hkey_max INT;
  78.     DECLARE cur_repeats CURSOR FOR
  79.         SELECT `chr`, `left`, `right`, `id`
  80.         FROM `repeats-g38-201505`;
  81.     DECLARE CONTINUE HANDLER FOR NOT FOUND SET fetched = FALSE;
  82.  
  83.     TRUNCATE TABLE `unwind-repeats`;
  84.  
  85.     OPEN cur_repeats;
  86.     FETCH cur_repeats INTO v_chr, v_left, v_right, v_id;
  87.  
  88.     WHILE (fetched) DO
  89.         SET hkey = v_left div 10000;
  90.         SET hkey_max = v_right div 10000;
  91.  
  92.         WHILE (hkey <= hkey_max) DO
  93.             INSERT INTO `unwind-repeats`
  94.             ( `chr`, `hkey`, `left`, `right`, `repeat_id` )
  95.             VALUES
  96.             ( v_chr, hkey, v_left, v_right, v_id );
  97.  
  98.             SET hkey = hkey + 1;
  99.         END WHILE;
  100.  
  101.         FETCH cur_repeats INTO v_chr, v_left, v_right, v_id;
  102.     END WHILE;
  103.  
  104.     CLOSE cur_repeats;
  105. END$$
  106. DELIMITER ;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement