Facebook
From Social Terrapin, 7 Years ago, written in SQL.
Embed
Download Paste or View Raw
Hits: 263
  1. --ZAD7
  2. ALTER TABLE etaty
  3. ADD COLUMN pensja_od NUMERIC(8,2),
  4. ADD COLUMN pensja_do NUMERIC(8,2);
  5.  
  6. UPDATE etaty
  7. SET pensja_od = LEAST(widelki[1], widelki[2]),
  8. pensja_do = GREATEST(widelki[1], widelki[2]);
  9.  
  10. ALTER TABLE etaty
  11. ADD CONSTRAINT A CHECK (pensja_od < pensja_do),
  12. ALTER COLUMN pensja_od SET NOT NULL,
  13. ALTER COLUMN pensja_do SET NOT NULL,
  14. DROP COLUMN widelki;
  15.  
  16. UPDATE pracownicy
  17. SET pensja = GREATEST(pensja, pensja_od) FROM etaty
  18. WHERE pracownicy.etat = etaty.etat;
  19.  
  20. INSERT INTO etaty(etat, pensja_od, pensja_do)
  21. SELECT CONCAT(etat, ' starszy'), pensja_od, 2 * pensja_do
  22. FROM etaty;
  23.  
  24. UPDATE pracownicy
  25. SET etat = CONCAT(pracownicy.etat, ' starszy')
  26. FROM etaty
  27. WHERE pracownicy.pensja > etaty.pensja_do AND pracownicy.etat = etaty.etat;
  28.  
  29. CREATE SEQUENCE nowa
  30. START 10
  31. INCREMENT 10;
  32.  
  33. ALTER TABLE etaty
  34. ADD COLUMN id_etatu INT DEFAULT NEXTVAL('nowa') NOT NULL,
  35. ADD COLUMN X VARCHAR(100);
  36.  
  37. UPDATE etaty SET X = etat;
  38.  
  39. ALTER TABLE etaty DROP COLUMN etat CASCADE;
  40. ALTER TABLE etaty RENAME COLUMN X TO etat;
  41. ALTER TABLE etaty ADD PRIMARY KEY(id_etatu);
  42. ALTER TABLE etaty ALTER COLUMN etat SET NOT NULL;
  43.  
  44. ALTER TABLE pracownicy ADD COLUMN etacik INT;
  45.  
  46. UPDATE pracownicy
  47. SET etacik = id_etatu
  48. FROM etaty
  49. WHERE etaty.etat = pracownicy.etat;
  50.  
  51. ALTER TABLE pracownicy DROP COLUMN etat;
  52. ALTER TABLE pracownicy RENAME COLUMN etacik TO etat;
  53. ALTER TABLE pracownicy ALTER COLUMN etat SET NOT NULL;
  54. ALTER TABLE pracownicy ADD FOREIGN KEY(etat) REFERENCES etaty(id_etatu);
  55. ----