2   name varchar(20) NOT NULL,
 
   7   FOREIGN KEY (base_unit) REFERENCES units (name)
 
  10 INSERT INTO units (name, base_unit, factor) VALUES ('mg', NULL, NULL);
 
  11 INSERT INTO units (name, base_unit, factor) VALUES ('g', 'mg', 1000);
 
  12 INSERT INTO units (name, base_unit, factor) VALUES ('kg', 'g', 1000);
 
  13 INSERT INTO units (name, base_unit, factor) VALUES ('t', 'kg', 1000);
 
  14 INSERT INTO units (name, base_unit, factor) VALUES ('ml', NULL, NULL);
 
  15 INSERT INTO units (name, base_unit, factor) VALUES ('L', 'ml', 1000);
 
  16 INSERT INTO units (name, base_unit, factor) VALUES ('Stck', NULL, NULL);
 
  17 ALTER TABLE units ADD COLUMN active boolean;
 
  18 UPDATE units SET active = 't';
 
  19 ALTER TABLE units ALTER COLUMN active SET DEFAULT 't';
 
  20 ALTER TABLE units ALTER COLUMN active SET NOT NULL;
 
  22 ALTER TABLE units ADD COLUMN tmp numeric(20, 5);
 
  23 UPDATE units SET tmp = factor;
 
  24 ALTER TABLE units DROP COLUMN factor;
 
  25 ALTER TABLE units RENAME tmp TO factor;
 
  27 ALTER TABLE units ADD COLUMN type varchar(20);
 
  28 UPDATE units SET type = 'dimension';
 
  29 ALTER TABLE units ALTER COLUMN type SET NOT NULL;
 
  31 -- Einheitennamen duerfen 20 Zeichen lang sein.
 
  33 ALTER TABLE parts ADD COLUMN tmp varchar(20);
 
  34 UPDATE parts SET tmp = unit;
 
  35 ALTER TABLE parts DROP COLUMN unit;
 
  36 ALTER TABLE parts RENAME tmp TO unit;
 
  38 ALTER TABLE invoice ADD COLUMN tmp varchar(20);
 
  39 UPDATE invoice SET tmp = unit;
 
  40 ALTER TABLE invoice DROP COLUMN unit;
 
  41 ALTER TABLE invoice RENAME tmp TO unit;
 
  43 ALTER TABLE orderitems ADD COLUMN tmp varchar(20);
 
  44 UPDATE orderitems SET tmp = unit;
 
  45 ALTER TABLE orderitems DROP COLUMN unit;
 
  46 ALTER TABLE orderitems RENAME tmp TO unit;
 
  48 -- Spalte "active" wird nicht mehr benoetigt, weil Einheiten nicht mehr deaktiviert
 
  51 ALTER TABLE units DROP COLUMN active;