Advertisement
Guest User

INSERT t1, SELECT t2, UPDATE t2 through single MySQL Query

a guest
Oct 18th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.25 KB | None | 0 0
  1. CREATE DATABASE AND TABLES AND INSERT.
  2.  
  3. CREATE DATABASE IF NOT EXISTS stackoverflow;
  4.  
  5. DROP TABLE IF EXISTS stackoverflow.t1;
  6.  
  7. CREATE TABLE stackoverflow.t1(
  8.  id INT
  9. );
  10.  
  11.  
  12. DROP TABLE IF EXISTS stackoverflow.t2;
  13.  
  14. CREATE TABLE stackoverflow.t2 (
  15.     id INT
  16.   , STATUS INT
  17. );
  18.  
  19. INSERT INTO stackoverflow.t2 (id, STATUS) VALUES (1, 0);
  20.  
  21.  
  22. CREATE PROCEDURE.
  23.  
  24. DROP PROCEDURE IF EXISTS stackoverflow.select_from_t2;
  25.  
  26. DELIMITER $$
  27.  
  28. CREATE
  29.     PROCEDURE stackoverflow.select_from_t2(
  30.       lookup_id INT
  31.     )
  32.  
  33.     BEGIN
  34.    
  35.            /* UPDATE status in t2 */
  36.            UPDATE
  37.              stackoverflow.t2
  38.            SET
  39.              stackoverflow.t2.STATUS = 1
  40.            WHERE  
  41.               stackoverflow.t2.id = lookup_id;
  42.  
  43.       /* Copy the t2 record into t1 table */
  44.       INSERT INTO
  45.        stackoverflow.t1
  46.       (stackoverflow.t1.id)  
  47.       SELECT
  48.        id
  49.       FROM
  50.        stackoverflow.t2
  51.       WHERE
  52.         stackoverflow.t2.id = lookup_id;
  53.        
  54.      
  55.        
  56.     END$$
  57.  
  58. DELIMITER ;
  59.  
  60.  
  61. How TO USE PROCEDURE.
  62.  
  63. CALL stackoverflow.select_from_t2(1);
  64.  
  65. Results
  66.  
  67. Query
  68.  
  69. SELECT * FROM t1;
  70.  
  71. RESULT
  72.  
  73.     id  
  74. --------
  75.        1
  76.  
  77.  
  78. query
  79.  
  80. SELECT * FROM t2;
  81.  
  82. RESULT
  83.  
  84.     id  STATUS  
  85. ------  --------
  86.      1         1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement