Advertisement
Guest User

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

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