| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 
 | --------------
SET AUTOCOMMIT = 0
--------------
 
--------------
START TRANSACTION
--------------
 
--------------
DROP DATABASE IF EXISTS `base`
--------------
 
--------------
CREATE DATABASE `base`
    DEFAULT CHARACTER SET `latin1`
    DEFAULT COLLATE       `latin1_general_ci`
--------------
 
--------------
DROP TABLE IF EXISTS `personne`
--------------
 
--------------
CREATE TABLE `personne`
( `id`         integer unsigned  NOT NULL auto_increment PRIMARY KEY,
  `nom`        varchar(255)      NOT NULL,
  `prenom`     varchar(255)      NOT NULL,
  `naissance`  date              NOT NULL,
  `age`        integer unsigned      NULL  default null
) ENGINE=InnoDB
  DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
  ROW_FORMAT=COMPRESSED
--------------
 
--------------
CREATE TRIGGER `anniversaire`
BEFORE INSERT ON `personne`
FOR EACH ROW
BEGIN
  SET NEW.age = year(subdate(current_date, to_days(new.naissance)));
END
--------------
 
--------------
insert into `personne` (`nom`,`prenom`, `naissance`) values
  ('nom-1', 'prenom-1', '1972-05-17'),
  ('nom-2', 'prenom-2', '1980-12-03'),
  ('nom-3', 'prenom-3', '1985-01-26'),
  ('nom-4', 'prenom-4', '1998-09-14'),
  ('nom-5', 'prenom-5', '2002-07-01')
--------------
 
--------------
select * from `personne`
--------------
 
+----+-------+----------+------------+------+
| id | nom   | prenom   | naissance  | age  |
+----+-------+----------+------------+------+
|  1 | nom-1 | prenom-1 | 1972-05-17 |   45 |
|  2 | nom-2 | prenom-2 | 1980-12-03 |   37 |
|  3 | nom-3 | prenom-3 | 1985-01-26 |   33 |
|  4 | nom-4 | prenom-4 | 1998-09-14 |   19 |
|  5 | nom-5 | prenom-5 | 2002-07-01 |   15 |
+----+-------+----------+------------+------+
--------------
COMMIT
--------------
 
--------------
SET AUTOCOMMIT = 1
--------------
 
Appuyez sur une touche pour continuer... | 
Partager