© Éditions Eyrolles
43
chapitre n° 2
Manipulation des données
Les insertions suivantes utilisent différents formats. Le premier pilote n’a pas volé depuis
1 jour et 23 heures (47 heures) ; le second depuis 15 heures, 26 minutes 30 secondes ; le troisième depuis 4 jours et 23 heures (119 heures) ; le quatrième depuis 3 heures 27 minutes et
50 secondes, et le dernier se croit plus précis que tous les autres en ajoutant une fraction qui ne
sera pas prise en compte au niveau de la base.
INSERT INTO Pilote VALUES ('PL-1', 'Hait', '1 23:0:0', '2002');
INSERT INTO Pilote VALUES ('PL-2', 'Crampes', '152630', 2006);
INSERT INTO Pilote VALUES ('PL-3', 'Tuffery', '4 23:00', 05);
INSERT INTO Pilote VALUES ('PL-4', 'Mercier', 032750, '07');
INSERT INTO Pilote VALUES ('PL-5', 'Albaric', '1 23:0:0.457', '01');
L’état de la base est le suivant :
mysql> SELECT * FROM Pilote;
+--------+---------+--------------+----------+
| brevet | nom
| pasVolDepuis | retraite |
+--------+---------+--------------+----------+
| PL-1
| Hait
| 47:00:00
|
2002 |
| PL-2
| Crampes | 15:26:30
|
2006 |
| PL-3
| Tuffery | 119:00:00
|
2005 |
| PL-4
| Mercier | 03:27:50
|
2007 |
| PL-5
| Albaric | 47:00:00
|
2001 |
+--------+---------+--------------+----------+
Si un dépassement se produit au niveau d’une colonne TIME, celle-ci est évaluée au maximum
ou au minimum ('-850:00:00' et '999:00:00' sont respectivement convertis à '-838:59:59' et
'838:59:59').
Exemple avec TIMESTAMP
Toute colonne du type TIMESTAMP est actualisée à chaque modification de l’enregistrement :
la première fois à l’INSERT, puis à chaque UPDATE (quelle que soit la colonne mise à jour).
Déclarons la table Pilote qui contient une colonne de ce type.
CREATE TABLE Pilote
(brevet VARCHAR(6), nom VARCHAR(20), misaJour TIMESTAMP,
CONSTRAINT pk_Pilote PRIMARY KEY(brevet));
L’insertion du pilote suivant initialisera la colonne à la date système (comme SYSDATE).
INSERT INTO Pilote (brevet,nom) VALUES ('PL-1', 'Hait');
Par la suite, et à la différence d’un type DATE ou DATETIME, pour chaque modification de ce
pilote, la colonne misaJour sera réactualisée avec la date de l’instant de la mise à jour.
Précédent

- 65/418

Suivant