vi er her !!!

02120

DifferentielGPS
home

Tabellen

MySQL har en hel række kommandoer, der kan bruges til at kontollere at man har fået udført hvad man regnede med. Kontrol af at datatabellen er blevet opretter korrekt kan f.eks udføres på denne måde:

Nedenstående er hvordan oprettelsen af datatabellen sker i programmet:

            String sql = "create table if not exists data ( ";
            sql = sql.concat("opdateret      timestamp , ");
            sql = sql.concat("oprettet       timestamp , ");
            sql = sql.concat("scaleFactor    int , ");
            sql = sql.concat("udre           int , ");
            sql = sql.concat("satelliteId    int , ");
            sql = sql.concat("iod            int , ");
            sql = sql.concat("pseudorangeC   double , ");
            sql = sql.concat("rangeRateC     double , ");
            sql = sql.concat("tidsstempel    bigint , ");
            sql = sql.concat("modifiedZCount double , ");
            sql = sql.concat("stationID      int , ");
            sql = sql.concat("sequenceNo     int , ");
            sql = sql.concat("device         char(32) , ");
            sql = sql.concat("index (oprettet) , ");
            sql = sql.concat("index (satelliteId) , ");
            sql = sql.concat("index (device) , ");
            sql = sql.concat("index (tidsstempel) ");
            sql = sql.concat(" ) ");
            sql = sql.concat("engine = MyISAM");

Og her er så hvordan MySQL har opfattet tingene:

mysql> show create table data;
+-------+---------------------------------------------------------------------------------------+
| Table | Create Table                                                                          |
+-------+---------------------------------------------------------------------------------------+
| data  | CREATE TABLE `data` (
          `opdateret` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
          `oprettet` timestamp NOT NULL default '0000-00-00 00:00:00',
          `scaleFactor` int(11) default NULL,
          `udre` int(11) default NULL,
          `satelliteId` int(11) default NULL,
          `iod` int(11) default NULL,
          `pseudorangeC` double default NULL,
          `rangeRateC` double default NULL,
          `tidsstempel` bigint(20) default NULL,
          `modifiedZCount` double default NULL,
          `stationID` int(11) default NULL,
          `sequenceNo` int(11) default NULL,
          `device` char(32) default NULL,
          KEY `oprettet` (`oprettet`),
          KEY `satelliteId` (`satelliteId`),
          KEY `tidsstempel` (`tidsstempel`),
          KEY `device` (`device`)
          ) ENGINE=MyISAM DEFAULT CHARSET=latin1
+-------+---------------------------------------------------------------------------------------+
1 row in set (0.07 sec)

Der er ikke en 100% overensstemmelse mellem de to 'opskrifter'. Det er fordi man kan benytte en lang række underforståede ting ved skabelsen. F.eks så vil det første timestamp man har i en linje automatisk blive opdateret hver gang en linje bliver ændret uden at dette eksplicit skal anføres. Denne viden er blevet udnyttet her. Endvidere behøver man ikke at specificere default eller underforståede parametre ved oprettelsen


home