1 2 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