bd_sincro.sql

  1. -- 0) Crea la base de datos y su usuario
  2.  
  3. CREATE DATABASE IF NOT EXISTS bd_sincro CHARACTER SET utf8 COLLATE utf8_general_ci;
  4. CREATE USER IF NOT EXISTS 'bd_sincro'@'%' IDENTIFIED BY 'bd_sincro';
  5. GRANT ALL PRIVILEGES ON bd_sincro.* TO 'bd_sincro'@'%' IDENTIFIED BY 'bd_sincro';
  6. USE bd_sincro;
  7.  
  8. -- 1) Crea la tablas
  9.  
  10. CREATE TABLE tmaestra (
  11. id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  12. campo1 VARCHAR(25),
  13. campo2 TEXT,
  14. instante TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  15. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  16.  
  17. CREATE TABLE tclonica (
  18. id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  19. campo1 VARCHAR(25),
  20. campo2 TEXT,
  21. instante TIMESTAMP NULL
  22. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  23.  
  24. -- 2) Inserta datos iniciales
  25.  
  26. INSERT INTO tmaestra (id, campo1, campo2) VALUES
  27. (5, 'cinco', 'mano'),
  28. (6, 'seis', 'insecto'),
  29. (7, 'siete', 'semana'),
  30. (8, 'ocho', 'araña'),
  31. (10, 'diez', 'dedos'),
  32. (13, 'trece', 'primo'),
  33. (14, 'catorce', 'bisemanal');
  34.  
  35. INSERT INTO tclonica(id, campo1, campo2, instante)
  36. SELECT id, campo1, campo2, instante
  37. FROM tmaestra m
  38. WHERE m.instante >= '0000-01-01 00:00:00'
  39. ON DUPLICATE KEY UPDATE
  40. id = m.id,
  41. campo1 = m.campo1,
  42. campo2 = m.campo2,
  43. instante = m.instante;
  44.  
  45. -- 3) Añade y cambia datos
  46.  
  47. INSERT INTO tmaestra (id, campo1, campo2) VALUES (15, 'quince', 'quincena');
  48. UPDATE tmaestra SET campo2 = 'decimal' WHERE id = 10;
  49.  
  50. INSERT INTO tclonica(id, campo1, campo2, instante)
  51. SELECT id, campo1, campo2, instante
  52. FROM tmaestra m
  53. WHERE m.instante >= (SELECT COALESCE(MAX(instante), '0000-01-01 00:00:00') FROM tclonica)
  54. ON DUPLICATE KEY UPDATE
  55. id = m.id,
  56. campo1 = m.campo1,
  57. campo2 = m.campo2,
  58. instante = m.instante;
  59.  
  60. -- 4) Borra datos
  61.  
  62. DELETE FROM tmaestra WHERE id = 15;
  63.  
  64. DELETE FROM tclonica WHERE id NOT IN (SELECT id FROM tmaestra);
  65.  

Proinf.net