IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Création d'un trigger BEFORE INSERT


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Par défaut Création d'un trigger BEFORE INSERT
    Bonjour à tous,

    Je débute en SQL et je souhaite mettre en place un trigger BEFORE INSERT sur une table qui déclenche +1 sur une colonne d'une autre table mais j'ai systématiquement une erreur, la requête est du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TRIGGER before_insert_table1 BEFORE INSERT
    ON Table1 FOR EACH ROW
    BEGIN
     UPDATE Table2 SET NEW.colonne = colonne + 1 
    END;
    il s'agit de compter +1 dans une colonne de la table 2 a chaque insertion dans la table1, quelqu'un sait'il d'ou vient le pb ? (je me dit d'ailleurs que le bloc d'instruction BEGIN et END ne sont pas forcement nécessaire sachant qu'il ne devrait y avoir qu'une requête pour arriver au résultat souhaité ?)

    Merci d'avance pour votre aide !

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Par défaut ERROR 1054 lors d'insertion de ligne suite à la pose d'un trigger !
    Re-bonjour à tous, j'ai trouvé ce qui a l'air d'une solution avec ce trigger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TRIGGER after_insert_commentaires AFTER INSERT
    ON Commentaire FOR EACH ROW UPDATE Article SET Article_value = Article_value +1 where Commentaire = 'nb_commentaire';
    Le problème est que ce trigger empêche toute nouvelle insertion dans la table commentaire et j'ai l'erreur suivante :
    ERROR 1054 (42S22): Unknown column 'Commentaire' in 'where clause'
    est-ce normal ?

    Merci à tous pour votre aide car cela fait seulement un mois que je fais du SQL et j'avoue que je sèche là

  3. #3
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 781
    Par défaut
    Salut voodooa.

    "Commentaire" est un mot réservé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `tabone`
    --------------
     
    --------------
    create table `tabone`
    (  `id`     integer unsigned  not null auto_increment primary key,
       `cumul`  integer unsigned  not null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `tabone` (`cumul`) values (0)
    --------------
     
    --------------
    select * from `tabone`
    --------------
     
    +----+-------+
    | id | cumul |
    +----+-------+
    |  1 |     0 |
    +----+-------+
    --------------
    DROP TABLE IF EXISTS `tabtwo`
    --------------
     
    --------------
    create table `tabtwo`
    (  `id`       integer unsigned not null auto_increment primary key,
       `libelle`  varchar(255)     not null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    DROP TRIGGER IF EXISTS `cumul`
    --------------
     
    --------------
    CREATE TRIGGER `cumul`
    BEFORE INSERT ON `tabtwo`
    FOR EACH ROW
    BEGIN
      update `tabone` set `cumul` = `cumul` + 1 where id = 1;
    END
    --------------
     
    --------------
    insert into `tabtwo` (`libelle`) values
      ('un'),('deux'),('trois'),('quatre'),('cinq')
    --------------
     
    --------------
    select * from `tabtwo`
    --------------
     
    +----+---------+
    | id | libelle |
    +----+---------+
    |  1 | un      |
    |  2 | deux    |
    |  3 | trois   |
    |  4 | quatre  |
    |  5 | cinq    |
    +----+---------+
    --------------
    select * from `tabone`
    --------------
     
    +----+-------+
    | id | cumul |
    +----+-------+
    |  1 |     5 |
    +----+-------+
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...
    @+

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Par défaut ERROR 1054 lors d'insertion de ligne suite à la pose d'un trigger !
    Bonjour Artemus24,

    Je tiens tout d’abord à te remercier pour ta réactivité et ta disponibilité, j'aimerai beaucoup avoir ton avis sur la suite de ma problématique, je ne suis pas sur de tout saisir et du coup je m'interroge sur le nom de table 'commentaire' qui a été défini pour l'admin qui transmet l'exercice, bizarrement ce mot réservé n'a pas posé de problème lors de la création de la table 'commentaire' ni lors d'insertion de ligne de commentaire via la requête suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO commentaire (article_id, auteur_id, contenu, date_commentaire) VALUES
    (1, 4, 'Mangifique', '2014-11-10 05:06:47');
    l'erreur ne survient qu'après la pose du trigger suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE TRIGGER after_insert_commentaires AFTER INSERT
    ON Commentaire FOR EACH ROW UPDATE Article SET Article_value = Article_value +1 where Commentaire = 'nb_commentaire';

    Trigger qui me semblait être une bonne solution pour comptabiliser directement le nb de commentaire par article dans la colonne 'nb_commentaire' de la table Article (plutôt que de faire un count à chaque requête select pour connaitre le nb de commentaire par article).

    L'idée te semble t'elle cohérente ? si oui pourquoi ce trigger empêche l'insertion de nouveaux commentaire ? (je n'ai semble t'il pas d'infos dans le cours que je suis sur l’impossibilité d'insérer une ligne à cause d'un trigger de ce type (hormis insertion sur la table de la requête qui a déclenché le trigger, mais comme le cours en question date un peu, les choses ont pu évoluer entre tps, cours sur version mysql 5.5).

    Si ma solution est cohérente, n'est-ce pas la mise en application/formulation du trigger qui pose problème ?

    Je trouve ta transaction très cohérente dans l'absolue, mais je ne vois pas comment l'appliquer dans mon cas de figure, mis à part refaire des tables supplémentaires, est-ce la seule solution ?

    Merci encore pour ton aide Artemis24 !

  5. #5
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 781
    Par défaut
    Salut voodooa.

    Citation Envoyé par voodooa
    je m'interroge sur le nom de table 'commentaire' qui a été défini pour l'admin qui transmet l'exercice,
    Il vaut mieux eviter d'utiliser des mots réservés, mais parfois ce n'est pas possible.
    MySql sait gérer cela en mettant le nom de votre colonne entre apostrophe inversée (alt gr + 7).

    Citation Envoyé par voodooa
    l'erreur ne survient qu'après la pose du trigger suivant :
    Je ne sais pas répondre à votre question car je ne connais pas le descriptif de vos tables.
    Il se peut que le fait d'avoir mis une majuscule à ma colonne "Commentaire" est peut-être la cause de votre problème.

    Citation Envoyé par voodooa
    Trigger qui me semblait être une bonne solution pour comptabiliser directement le nb de commentaire par article dans la colonne 'nb_commentaire' de la table Article (plutôt que de faire un count à chaque requête select pour connaitre le nb de commentaire par article).
    Il ne faut pas abuser des déclencheurs (trigger) pour faire une comptabilisation sinon, vous risquer d'avoir des problèmes de performances.
    Avez-vous besoin d'avoir la comptabilisation du nombre de commentaire en temps réel ?
    Pourquoi ne pas utiliser une view qui va vous calculer ce dont vous avez besoin ?

    Citation Envoyé par voodooa
    L'idée te semble t'elle cohérente ?
    Ce n'est pas ce choix que j'aurai fait au premier abord.

    Citation Envoyé par voodooa
    si oui pourquoi ce trigger empêche l'insertion de nouveaux commentaire ?
    C'est plutôt non.

    Le déclencheur n'empêche rien car vous avez un problème d'identification de votre colonne 'Commentaire'.
    L'erreur est suffisamment explicite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ERROR 1054 (42S22): Unknown column 'Commentaire' in 'where clause'
    Etes-vous certain que la colonne 'Commentaire' s'écrit avec une majuscule ?
    Sinon, changez le nom de votre colonne ?

    @+

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 380
    Par défaut
    Bonjour,
    Je vois surtout que le trigger est sur la table commentaire, alors qu'il est fait référence à une colonne commentaire dans le trigger.
    Il ne s'agirait pas de la colonne contenu, colonne qui apparait bien dans la requête INSERT ?

    Tatayo.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Par défaut
    Bonjour Tatayo,

    en effet je me suis cracké sur ce trigger, qui est d'ailleurs mon 1er trigger dans la clause Where je voulais identifié la colonne Article.nb_commentaire de la nouvelle insertion dans la table Commentaire afin d'ajouter +1 dans la colonne nb_commentaire de la table article, il semblerai que j'aurai plutôt due formuler ma clause where ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where id = NEW.article_id
    ou peut-être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where nb_commentaire =NEW.nb_commentaire
    Merci pour ta remarque Tatayo, de plus avec le peu d’éléments que je vous ai transmis je réalise que c'est assez délicat, je tenterai d’être bcp plus précis et complet à l'avenir.

    Voodooa

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2019
    Messages : 5
    Par défaut Problème résolu
    Pour finir,

    Suite aux conseils d'Artemis24 et Tatayo, (ainsi que Yann via un autre support) cela fonctionne enfin, en effet j'ai due modifier le nom de ma colonne nb_commentaire dans la table article et aussi modifié la clause Where, du coup voici ce que ça donne (si ca peut aider d'autres débutant comme moi)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TRIGGER `after_insert_commentaires` AFTER INSERT ON `commentaire`
     FOR EACH ROW UPDATE Article SET nb_com = nb_com +1 where id = NEW.article_id
    Je clôture donc ce sujet, qlqchose me dit que je serai surement de retour tôt ou tard pour solliciter votre aide

    Par avance Merci à tous ! (Spécialement Artemis24 qui a été très patient et très bon pédagogue tout en restant humble)

  9. #9
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 781
    Par défaut
    Salut Voodooa.

    Ne me contactez pas par MP. Le forum est fait pour déposer des demandes afin que tout le monde puisse vous répondre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
    566
    567
    568
    569
    570
    571
    572
    573
    574
    575
    576
    577
    578
    579
    580
    581
    582
    583
    584
    585
    586
    587
    588
    589
    590
    591
    592
    593
    594
    595
    596
    597
    598
    599
    600
    601
    602
    603
    604
    605
    606
    607
    608
    609
    610
    611
    612
    613
    614
    615
    616
    617
    618
    619
    620
    621
    622
    623
    624
    625
    626
    627
    628
    629
    630
    631
    632
    633
    634
    635
    636
    637
    638
    639
    640
    641
    642
    643
    644
    645
    646
    647
    648
    649
    650
    651
    652
    653
    654
    655
    656
    657
    658
    659
    660
    661
    662
    663
    664
    665
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE IF NOT EXISTS `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `utilisateur`
    --------------
     
    --------------
    create table `utilisateur`
    ( `id`        integer unsigned  not null auto_increment primary key,
      `pseudo`    varchar(255) not null,
      `email`     varchar(255) not null,
      `password`  varchar(255) not null,
      unique index `idx_email`  (`email`),
      unique index `idx_pseudo` (`pseudo`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `utilisateur` (`pseudo`,`email`,`password`) VALUES
      ('Baudelaire',  'baudelaire@email.com', '6fd4c29cbd6a758bce1acf991aa9f32e69ced155'),
      ('Rimbaud',     'rimbaud@email.com',    '6fd4c29cbd6a758bce1acf991aa9f32e69ced155'),
      ('Victor Hugo', 'vhugo@email.com',      '3edb6ce6e328ea8639a3a357c7c6997775ab52ea'),
      ('JacquesP',    'j.prevert@email.com',  '713f55ba75af01593dc4e845a8c0dcb9fbb45a88')
    --------------
     
    --------------
    select * from `utilisateur`
    --------------
     
    +----+-------------+----------------------+------------------------------------------+
    | id | pseudo      | email                | password                                 |
    +----+-------------+----------------------+------------------------------------------+
    |  1 | Baudelaire  | baudelaire@email.com | 6fd4c29cbd6a758bce1acf991aa9f32e69ced155 |
    |  2 | Rimbaud     | rimbaud@email.com    | 6fd4c29cbd6a758bce1acf991aa9f32e69ced155 |
    |  3 | Victor Hugo | vhugo@email.com      | 3edb6ce6e328ea8639a3a357c7c6997775ab52ea |
    |  4 | JacquesP    | j.prevert@email.com  | 713f55ba75af01593dc4e845a8c0dcb9fbb45a88 |
    +----+-------------+----------------------+------------------------------------------+
    --------------
    DROP TABLE IF EXISTS `article`
    --------------
     
    --------------
    create table `article`
    ( `id`                integer unsigned  not null auto_increment primary key,
      `titre`             varchar(255)      not null,
      `resume`            text              null,
      `contenu`           text              not null,
      `auteur_id`         integer unsigned  not null,
      `date_publication`  datetime          not null,
      `nbre_commentaire`  integer unsigned  not null default 0,
      CONSTRAINT `FK_ARTICLE_AUTEUR` FOREIGN KEY (`auteur_id`) REFERENCES `utilisateur` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
      index `idx_auteur_1`     (`auteur_id`),
      index `idx_publication`  (`date_publication`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    drop trigger if exists `maj_resume`
    --------------
     
    --------------
    create trigger `maj_resume`
    before insert on `article`
    for each row
    begin
      set new.`resume` = (coalesce(new.`resume`, substring(new.`contenu`,1,150)));
    end
    --------------
     
    --------------
    insert into `article` (`titre`,`resume`,`contenu`,`auteur_id`,`date_publication`) VALUES
      ('Confession',
       'Une fois, une seule, aimable et douce femme,\r\nA mon bras votre bras poli\r\nS''appuya (sur le fond ténébreux de mon âme\r\nCe souvenir n''est point pâli) ;',
       'Une fois, une seule, aimable et douce femme,\r\nA mon bras votre bras poli\r\nS''appuya (sur le fond ténébreux de mon âme\r\nCe souvenir n''est point pâli) ;\r\n\r\nIl était tard ; ainsi qu''une médaille neuve\r\nLa pleine lune s''étalait,\r\nEt la solennité de la nuit, comme un fleuve,\r\nSur Paris dormant ruisselait.\r\n\r\nEt le long des maisons, sous les portes cochères,\r\nDes chats passaient furtivement,\r\nL''oreille au guet, ou bien, comme des ombres chères,\r\nNous accompagnaient lentement.\r\n\r\nTout à coup, au milieu de l''intimité libre\r\nÉclose à la pâle clarté,\r\nDe vous, riche et sonore instrument où ne vibre\r\nQue la radieuse gaieté,\r\n\r\nDe vous, claire et joyeuse ainsi qu''une fanfare\r\nDans le matin étincelant,\r\nUne note plaintive, une note bizarre\r\nS''échappa, tout en chancelant\r\n\r\nComme une enfant chétive, horrible, sombre, immonde,\r\nDont sa famille rougirait,\r\nEt qu''elle aurait longtemps, pour la cacher au monde,\r\nDans un caveau mise au
    secret.\r\n\r\nPauvre ange, elle chantait, votre note criarde :\r\n" Que rien ici-bas n''est certain,\r\nEt que toujours, avec quelque soin qu''il se farde,\r\nSe trahit l''égoïsme humain ;\r\n\r\nQue c''est un dur métier que d''être belle femme,\r\nEt que c''est le travail banal\r\nDe la danseuse folle et froide qui se pâme\r\nDans un sourire machinal ;\r\n\r\nQue bâtir sur les coeurs est une chose sotte ;\r\nQue tout craque, amour et beauté,\r\nJusqu''à ce que l''Oubli les jette dans sa hotte\r\nPour les rendre à l''Éternité ! "\r\n\r\nJ''ai souvent évoqué cette lune enchantée,\r\nCe silence et cette langueur,\r\nEt cette confidence horrible chuchotée\r\nAu confessionnal du coeur.',
       1,
       '2014-10-20 14:43:07'),
      ('Sonnet d''automne',
       'Ils me disent, tes yeux, clairs comme le cristal :\r\n" Pour toi, bizarre amant, quel est donc mon mérite ? "\r\n- Sois charmante et tais-toi ! Mon coeur, que tout irrite,\r\nExcepté la candeur de l''antique animal,\r\n\r\nNe veut pas te montrer son secret infernal,\r\nBerceuse dont la main aux longs sommeils m''invite,\r\nNi sa noire légende avec la flamme écrite.\r\nJe hais la passion et l''esprit me fait mal !\r\n\r\nAimons-nous doucement. L''Amour dans sa guérite,\r\nTénébreux, embusqué, bande son arc fatal.\r\nJe connais les engins de son vieil arsenal :\r\n\r\nCrime, horreur et folie ! - Ô pâle marguerite !\r\nComme moi n''es-tu pas un soleil automnal,\r\nÔ ma si blanche, ô ma si froide Marguerite ?',
       'Ils me disent, tes yeux, clairs comme le cristal :\r\n" Pour toi, bizarre amant, quel est donc mon mérite ? "\r\n- Sois charmante et tais-toi ! Mon coeur, que tout irrite,\r\nExcepté la candeur de l''antique animal,\r\n\r\nNe veut pas te montrer son secret infernal,\r\nBerceuse dont la main aux longs sommeils m''invite,\r\nNi sa noire légende avec la flamme écrite.\r\nJe hais la passion et l''esprit me fait mal !\r\n\r\nAimons-nous doucement. L''Amour dans sa guérite,\r\nTénébreux, embusqué, bande son arc fatal.\r\nJe connais les engins de son vieil arsenal :\r\n\r\nCrime, horreur et folie ! - Ô pâle marguerite !\r\nComme moi n''es-tu pas un soleil automnal,\r\nÔ ma si blanche, ô ma si froide Marguerite ?',
       1,
       '2014-10-24 16:38:23'),
      ('Le dormeur du val',
       'C''est un trou de verdure où chante une rivière,\r\nAccrochant follement aux herbes des haillons\r\nD''argent ; où le soleil, de la montagne fière,\r\nLuit : c''est un petit val qui mousse de rayons.',
       'C''est un trou de verdure où chante une rivière,\r\nAccrochant follement aux herbes des haillons\r\nD''argent ; où le soleil, de la montagne fière,\r\nLuit : c''est un petit val qui mousse de rayons.\r\n\r\nUn soldat jeune, bouche ouverte, tête nue,\r\nEt la nuque baignant dans le frais cresson bleu,\r\nDort ; il est étendu dans l''herbe, sous la nue,\r\nPâle dans son lit vert où la lumière pleut.\r\n\r\nLes pieds dans les glaïeuls, il dort. Souriant comme\r\nSourirait un enfant malade, il fait un somme :\r\nNature, berce-le chaudement : il a froid.\r\n\r\nLes parfums ne font pas frissonner sa narine ;\r\nIl dort dans le soleil, la main sur sa poitrine,\r\nTranquille. Il a deux trous rouges au côté droit.',
       2,
       '2014-10-28 07:50:25'),
      ('Les corbeaux',
       'Seigneur, quand froide est la prairie,\r\nQuand dans les hameaux abattus,\r\nLes longs angelus se sont tus...\r\nSur la nature défleurie\r\nFaites s''abattre des grands cieux\r\nLes chers corbeaux délicieux.',
       'Seigneur, quand froide est la prairie,\r\nQuand dans les hameaux abattus,\r\nLes longs angelus se sont tus...\r\nSur la nature défleurie\r\nFaites s''abattre des grands cieux\r\nLes chers corbeaux délicieux.\r\n\r\nArmée étrange aux cris sévères,\r\nLes vents froids attaquent vos nids !\r\nVous, le long des fleuves jaunis,\r\nSur les routes aux vieux calvaires,\r\nSur les fossés et sur les trous\r\nDispersez-vous, ralliez-vous !\r\n\r\nPar milliers, sur les champs de France,\r\nOù dorment des morts d''avant-hier,\r\nTournoyez, n''est-ce pas, l''hiver,\r\nPour que chaque passant repense !\r\nSois donc le crieur du devoir,\r\nÔ notre funèbre oiseau noir !\r\n\r\nMais, saints du ciel, en haut du chêne,\r\nMât perdu dans le soir charmé,\r\nLaissez les fauvettes de mai\r\nPour ceux qu''au fond du bois enchaîne,\r\nDans l''herbe d''où l''on ne peut fuir,\r\nLa défaite sans avenir.',
       2,
       '2014-10-06 07:07:42'),
      ('Demain dès l''aube',
       'Demain, dès l''aube, à l''heure où blanchit la campagne,\r\nJe partirai. Vois-tu, je sais que tu m''attends.',
       'Demain, dès l''aube, à l''heure où blanchit la campagne,\r\nJe partirai. Vois-tu, je sais que tu m''attends.\r\nJ''irai par la forêt, j''irai par la montagne.\r\nJe ne puis demeurer loin de toi plus longtemps.\r\n\r\nJe marcherai les yeux fixés sur mes pensées,\r\nSans rien voir au dehors, sans entendre aucun bruit,\r\nSeul, inconnu, le dos courbé, les mains croisées,\r\nTriste, et le jour pour moi sera comme la nuit.\r\n\r\nJe ne regarderai ni l''or du soir qui tombe,\r\nNi les voiles au loin descendant vers Harfleur,\r\nEt quand j''arriverai, je mettrai sur ta tombe\r\nUn bouquet de houx vert et de bruyère en fleur.',
       3,
       '2014-10-30 22:25:30'),
      ('Après l''hiver',
       'N''attendez pas de moi que je vais vous donner \r\nDes raisons contre Dieu que je vois rayonner ; \r\nLa nuit meurt, l''hiver fuit ; maintenant la lumière, \r\nDans les champs, dans les bois, est partout la première. \r\nJe suis par le printemps vaguement attendri. ',
       'N''attendez pas de moi que je vais vous donner \r\nDes raisons contre Dieu que je vois rayonner ; \r\nLa nuit meurt, l''hiver fuit ; maintenant la lumière, \r\nDans les champs, dans les bois, est partout la première. \r\nJe suis par le printemps vaguement attendri. \r\nAvril est un enfant, frêle, charmant, fleuri ; \r\nJe sens devant l''enfance et devant le zéphyre \r\nJe ne sais quel besoin de pleurer et de rire ; \r\nMai complète ma joie et s''ajoute à mes pleurs. \r\nJeanne, George, accourez, puisque voilà des fleurs. \r\nAccourez, la forêt chante, l''azur se dore, \r\nVous n''avez pas le droit d''être absents de l''aurore. \r\nJe suis un vieux songeur et j''ai besoin de vous, \r\nVenez, je veux aimer, être juste, être doux, \r\nCroire, remercier confusément les choses, \r\nVivre sans reprocher les épines aux roses,\r\nÊtre enfin un bonhomme acceptant le bon Dieu.\r\n\r\nÔ printemps ! bois sacrés ! ciel profondément bleu ! \r\nOn sent un souffle d''air vivant qui vous pénètre,
    \r\nEt l''ouverture au loin d''une blanche fenêtre ;\r\nOn mêle sa pensée au clair-obscur des eaux ; \r\nOn a le doux bonheur d''être avec les oiseaux \r\nEt de voir, sous l''abri des branches printanières, \r\nCes messieurs faire avec ces dames des manières.',
       3,
       '2014-10-20 05:07:45'),
      ('Le désespoir est assis sur un banc',
       'Dans un square sur un banc\r\nIl y a un homme qui vous appelle quand on passe\r\nIl a des binocles un vieux costume gris\r\nIl fume un petit ninas il est assis\r\nEt il vous appelle quand on passe',
       'Dans un square sur un banc\r\nIl y a un homme qui vous appelle quand on passe\r\nIl a des binocles un vieux costume gris\r\nIl fume un petit ninas il est assis\r\nEt il vous appelle quand on passe\r\nOu simplement il vous fait signe\r\nIl ne faut pas le regarder\r\nIl ne faut pas l''écouter\r\nIl faut passer\r\nFaire comme si on ne le voyait pas\r\nComme si on ne l''entendait pas\r\nIl faut passer et presser le pas\r\nSi vous le regardez\r\nSi vous l''écoutez\r\nIl vous fait signe et rien personne\r\nNe peut vous empêcher d''aller vous asseoir près de lui\r\nAlors il vous regarde et sourit\r\nEt vous souffrez atrocement\r\nEt l''homme continue de sourire\r\nEt vous souriez du même sourire\r\nExactement\r\nPlus vous souriez plus vous souffrez\r\nAtrocement\r\nPlus vous souffrez plus vous souriez\r\nIrrémédiablement\r\nEt vous restez là\r\nAssis figé\r\nSouriant sur le banc\r\nDes enfants jouent tout près de vous\r\nDes passants passent\r\nTranquillement\r\nDes oiseaux s''envolent\r
    \nQuittant un arbre\r\nPour un autre\r\nEt vous restez là\r\nSur le banc\r\nEt vous savez vous savez\r\nQue jamais plus vous ne jouerez\r\nComme ces enfants\r\nVous savez que jamais plus vous ne passerez\r\nTranquillement\r\nComme ces passants\r\nQue jamais plus vous ne vous envolerez\r\nQuittant un arbre pour un autre\r\nComme ces oiseaux.',
       4,
       '2014-10-01 08:10:35'),
      ('Un beau matin',
       'Il n''avait peur de personne \r\nIl n''avait peur de rien \r\nMais un matin un beau matin \r\nIl croit voir quelque chose ',
       'Il n''avait peur de personne \r\nIl n''avait peur de rien \r\nMais un matin un beau matin \r\nIl croit voir quelque chose \r\nMais il dit Ce n''est rien \r\nEt il avait raison \r\nAvec sa raison sans nul doute \r\nCe n'' était rien \r\nMais le matin ce même matin \r\nIl croit entendre quelqu''un \r\nEt il ouvrit la porte \r\nEt il la referma en disant Personne \r\nEt il avait raison \r\nAvec sa raison sans nul doute \r\nIl n''y avait personne \r\nMais soudain il eut peur \r\nEt il comprit qu''Il était seul \r\nMais qu''Il n''était pas tout seul \r\nEt c''est alors qu''il vit \r\nRien en personne devant lui \r\n',
       4,
       '2014-10-11 16:50:17')
    --------------
     
    --------------
    insert into `article` (`titre`,`resume`,`contenu`,`auteur_id`,`date_publication`) VALUES
      ('testtriggersubstr',
       NULL,
       'voici le test de mon trigger et j’espère que ce test fonctionnera car il est sensé prendre les 150 premières lettres du contenu pour en faire un resume mais j ai un gros doute du coup on va vite le savoir et je croise les doigts pour que ça fonctionne car ca commence à me prendre la tête.',
       1,
       '2019-01-01')
    --------------
     
    --------------
    select * from `article`
    --------------
     
    +----+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+---------------------+------------------+
    | id | titre                              | resume                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | contenu
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | auteur_id | date_publication    | nbre_commentaire |
    +----+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+---------------------+------------------+
    |  1 | Confession                         | Une fois, une seule, aimable et douce femme,
    A mon bras votre bras poli
    S'appuya (sur le fond ténébreux de mon âme
    Ce souvenir n'est point pâli) ;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Une fois, une seule, aimable et douce femme,
    A mon bras votre bras poli
    S'appuya (sur le fond ténébreux de mon âme
    Ce souvenir n'est point pâli) ;
     
    Il était tard ; ainsi qu'une médaille neuve
    La pleine lune s'étalait,
    Et la solennité de la nuit, comme un fleuve,
    Sur Paris dormant ruisselait.
     
    Et le long des maisons, sous les portes cochères,
    Des chats passaient furtivement,
    L'oreille au guet, ou bien, comme des ombres chères,
    Nous accompagnaient lentement.
     
    Tout à coup, au milieu de l'intimité libre
    Éclose à la pâle clarté,
    De vous, riche et sonore instrument où ne vibre
    Que la radieuse gaieté,
     
    De vous, claire et joyeuse ainsi qu'une fanfare
    Dans le matin étincelant,
    Une note plaintive, une note bizarre
    S'échappa, tout en chancelant
     
    Comme une enfant chétive, horrible, sombre, immonde,
    Dont sa famille rougirait,
    Et qu'elle aurait longtemps, pour la cacher au monde,
    Dans un caveau mise au secret.
     
    Pauvre ange, elle chantait, votre note criarde :
    " Que rien ici-bas n'est certain,
    Et que toujours, avec quelque soin qu'il se farde,
    Se trahit l'égoïsme humain ;
     
    Que c'est un dur métier que d'être belle femme,
    Et que c'est le travail banal
    De la danseuse folle et froide qui se pâme
    Dans un sourire machinal ;
     
    Que bâtir sur les coeurs est une chose sotte ;
    Que tout craque, amour et beauté,
    Jusqu'à ce que l'Oubli les jette dans sa hotte
    Pour les rendre à l'Éternité ! "
     
    J'ai souvent évoqué cette lune enchantée,
    Ce silence et cette langueur,
    Et cette confidence horrible chuchotée
    Au confessionnal du coeur. |         1 | 2014-10-20 14:43:07 |                0 |
    |  2 | Sonnet d'automne                   | Ils me disent, tes yeux, clairs comme le cristal :
    " Pour toi, bizarre amant, quel est donc mon mérite ? "
    - Sois charmante et tais-toi ! Mon coeur, que tout irrite,
    Excepté la candeur de l'antique animal,
     
    Ne veut pas te montrer son secret infernal,
    Berceuse dont la main aux longs sommeils m'invite,
    Ni sa noire légende avec la flamme écrite.
    Je hais la passion et l'esprit me fait mal !
     
    Aimons-nous doucement. L'Amour dans sa guérite,
    Ténébreux, embusqué, bande son arc fatal.
    Je connais les engins de son vieil arsenal :
     
    Crime, horreur et folie ! - Ô pâle marguerite !
    Comme moi n'es-tu pas un soleil automnal,
    Ô ma si blanche, ô ma si froide Marguerite ? | Ils me disent, tes yeux, clairs comme le cristal :
    " Pour toi, bizarre amant, quel est donc mon mérite ? "
    - Sois charmante et tais-toi ! Mon coeur, que tout irrite,
    Excepté la candeur de l'antique animal,
     
    Ne veut pas te montrer son secret infernal,
    Berceuse dont la main aux longs sommeils m'invite,
    Ni sa noire légende avec la flamme écrite.
    Je hais la passion et l'esprit me fait mal !
     
    Aimons-nous doucement. L'Amour dans sa guérite,
    Ténébreux, embusqué, bande son arc fatal.
    Je connais les engins de son vieil arsenal :
     
    Crime, horreur et folie ! - Ô pâle marguerite !
    Comme moi n'es-tu pas un soleil automnal,
    Ô ma si blanche, ô ma si froide Marguerite ?                                                                                                                                                                                                                                                                                                                                                            |         1 | 2014-10-24 16:38:23 |                0 |
    |  3 | Le dormeur du val                  | C'est un trou de verdure où chante une rivière,
    Accrochant follement aux herbes des haillons
    D'argent ; où le soleil, de la montagne fière,
    Luit : c'est un petit val qui mousse de rayons.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | C'est un trou de verdure où chante une rivière,
    Accrochant follement aux herbes des haillons
    D'argent ; où le soleil, de la montagne fière,
    Luit : c'est un petit val qui mousse de rayons.
     
    Un soldat jeune, bouche ouverte, tête nue,
    Et la nuque baignant dans le frais cresson bleu,
    Dort ; il est étendu dans l'herbe, sous la nue,
    Pâle dans son lit vert où la lumière pleut.
     
    Les pieds dans les glaïeuls, il dort. Souriant comme
    Sourirait un enfant malade, il fait un somme :
    Nature, berce-le chaudement : il a froid.
     
    Les parfums ne font pas frissonner sa narine ;
    Il dort dans le soleil, la main sur sa poitrine,
    Tranquille. Il a deux trous rouges au côté droit.                                                                                                                                                                                                                                                                                                                                                           |         2 | 2014-10-28 07:50:25 |                0 |
    |  4 | Les corbeaux                       | Seigneur, quand froide est la prairie,
    Quand dans les hameaux abattus,
    Les longs angelus se sont tus...
    Sur la nature défleurie
    Faites s'abattre des grands cieux
    Les chers corbeaux délicieux.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Seigneur, quand froide est la prairie,
    Quand dans les hameaux abattus,
    Les longs angelus se sont tus...
    Sur la nature défleurie
    Faites s'abattre des grands cieux
    Les chers corbeaux délicieux.
     
    Armée étrange aux cris sévères,
    Les vents froids attaquent vos nids !
    Vous, le long des fleuves jaunis,
    Sur les routes aux vieux calvaires,
    Sur les fossés et sur les trous
    Dispersez-vous, ralliez-vous !
     
    Par milliers, sur les champs de France,
    Où dorment des morts d'avant-hier,
    Tournoyez, n'est-ce pas, l'hiver,
    Pour que chaque passant repense !
    Sois donc le crieur du devoir,
    Ô notre funèbre oiseau noir !
     
    Mais, saints du ciel, en haut du chêne,
    Mât perdu dans le soir charmé,
    Laissez les fauvettes de mai
    Pour ceux qu'au fond du bois enchaîne,
    Dans l'herbe d'où l'on ne peut fuir,
    La défaite sans avenir.                                                                                                                                                                                                      |         2 | 2014-10-06 07:07:42 |                0 |
    |  5 | Demain dès l'aube                  | Demain, dès l'aube, à l'heure où blanchit la campagne,
    Je partirai. Vois-tu, je sais que tu m'attends.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Demain, dès l'aube, à l'heure où blanchit la campagne,
    Je partirai. Vois-tu, je sais que tu m'attends.
    J'irai par la forêt, j'irai par la montagne.
    Je ne puis demeurer loin de toi plus longtemps.
     
    Je marcherai les yeux fixés sur mes pensées,
    Sans rien voir au dehors, sans entendre aucun bruit,
    Seul, inconnu, le dos courbé, les mains croisées,
    Triste, et le jour pour moi sera comme la nuit.
     
    Je ne regarderai ni l'or du soir qui tombe,
    Ni les voiles au loin descendant vers Harfleur,
    Et quand j'arriverai, je mettrai sur ta tombe
    Un bouquet de houx vert et de bruyère en fleur.                                                                                                                                                                                                                                                                                                                                                                                                                                                 |         3 | 2014-10-30 22:25:30 |                0 |
    |  6 | Après l'hiver                      | N'attendez pas de moi que je vais vous donner
    Des raisons contre Dieu que je vois rayonner ;
    La nuit meurt, l'hiver fuit ; maintenant la lumière,
    Dans les champs, dans les bois, est partout la première.
    Je suis par le printemps vaguement attendri.                                                                                                                                                                                                                                                                                                                                                                                                                                       | N'attendez pas de moi que je vais vous donner
    Des raisons contre Dieu que je vois rayonner ;
    La nuit meurt, l'hiver fuit ; maintenant la lumière,
    Dans les champs, dans les bois, est partout la première.
    Je suis par le printemps vaguement attendri.
    Avril est un enfant, frêle, charmant, fleuri ;
    Je sens devant l'enfance et devant le zéphyre
    Je ne sais quel besoin de pleurer et de rire ;
    Mai complète ma joie et s'ajoute à mes pleurs.
    Jeanne, George, accourez, puisque voilà des fleurs.
    Accourez, la forêt chante, l'azur se dore,
    Vous n'avez pas le droit d'être absents de l'aurore.
    Je suis un vieux songeur et j'ai besoin de vous,
    Venez, je veux aimer, être juste, être doux,
    Croire, remercier confusément les choses,
    Vivre sans reprocher les épines aux roses,
    Être enfin un bonhomme acceptant le bon Dieu.
     
    Ô printemps ! bois sacrés ! ciel profondément bleu !
    On sent un souffle d'air vivant qui vous pénètre,
    Et l'ouverture au loin d'une blanche fenêtre ;
    On mêle sa pensée au clair-obscur des eaux ;
    On a le doux bonheur d'être avec les oiseaux
    Et de voir, sous l'abri des branches printanières,
    Ces messieurs faire avec ces dames des manières. |         3 | 2014-10-20 05:07:45 |                0 |
    |  7 | Le désespoir est assis sur un banc | Dans un square sur un banc
    Il y a un homme qui vous appelle quand on passe
    Il a des binocles un vieux costume gris
    Il fume un petit ninas il est assis
    Et il vous appelle quand on passe                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Dans un square sur un banc
    Il y a un homme qui vous appelle quand on passe
    Il a des binocles un vieux costume gris
    Il fume un petit ninas il est assis
    Et il vous appelle quand on passe
    Ou simplement il vous fait signe
    Il ne faut pas le regarder
    Il ne faut pas l'écouter
    Il faut passer
    Faire comme si on ne le voyait pas
    Comme si on ne l'entendait pas
    Il faut passer et presser le pas
    Si vous le regardez
    Si vous l'écoutez
    Il vous fait signe et rien personne
    Ne peut vous empêcher d'aller vous asseoir près de lui
    Alors il vous regarde et sourit
    Et vous souffrez atrocement
    Et l'homme continue de sourire
    Et vous souriez du même sourire
    Exactement
    Plus vous souriez plus vous souffrez
    Atrocement
    Plus vous souffrez plus vous souriez
    Irrémédiablement
    Et vous restez là
    Assis figé
    Souriant sur le banc
    Des enfants jouent tout près de vous
    Des passants passent
    Tranquillement
    Des oiseaux s'envolent
    Quittant un arbre
    Pour un autre
    Et vous restez là
    Sur le banc
    Et vous savez vous savez
    Que jamais plus vous ne jouerez
    Comme ces enfants
    Vous savez que jamais plus vous ne passerez
    Tranquillement
    Comme ces passants
    Que jamais plus vous ne vous envolerez
    Quittant un arbre pour un autre
    Comme ces oiseaux. |         4 | 2014-10-01 08:10:35 |                0 |
    |  8 | Un beau matin                      | Il n'avait peur de personne
    Il n'avait peur de rien
    Mais un matin un beau matin
    Il croit voir quelque chose                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Il n'avait peur de personne
    Il n'avait peur de rien
    Mais un matin un beau matin
    Il croit voir quelque chose
    Mais il dit Ce n'est rien
    Et il avait raison
    Avec sa raison sans nul doute
    Ce n' était rien
    Mais le matin ce même matin
    Il croit entendre quelqu'un
    Et il ouvrit la porte
    Et il la referma en disant Personne
    Et il avait raison
    Avec sa raison sans nul doute
    Il n'y avait personne
    Mais soudain il eut peur
    Et il comprit qu'Il était seul
    Mais qu'Il n'était pas tout seul
    Et c'est alors qu'il vit
    Rien en personne devant lui
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |         4 | 2014-10-11 16:50:17 |                0 |
    |  9 | testtriggersubstr                  | voici le test de mon trigger et j’espère que ce test fonctionnera car il est sensé prendre les 150 premières lettres du contenu pour en faire un resum                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | voici le test de mon trigger et j’espère que ce test fonctionnera car il est sensé prendre les 150 premières lettres du contenu pour en faire un resume mais j ai un gros doute du coup on va vite le savoir et je croise les doigts pour que ça fonctionne car ca commence à me pr
    endre la tête.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |         1 | 2019-01-01 00:00:00 |                0 |
    +----+------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------+---------------------+------------------+
    --------------
    DROP TABLE IF EXISTS `catgorie`
    --------------
     
    --------------
    create table `categorie`
    (  `id`   integer unsigned  not null auto_increment primary key,
       `nom`  varchar(255) not null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `categorie` (`nom`) VALUES
      ('Guerre'),('Mélancolie'),('Amour'),('Mort'),('Saison')
    --------------
     
    --------------
    select * from `categorie`
    --------------
     
    +----+------------+
    | id | nom        |
    +----+------------+
    |  1 | Guerre     |
    |  2 | Mélancolie |
    |  3 | Amour      |
    |  4 | Mort       |
    |  5 | Saison     |
    +----+------------+
    --------------
    DROP TABLE IF EXISTS `categorie_article`
    --------------
     
    --------------
    create table `categorie_article`
    ( `categorie_id` integer unsigned not null,
      `article_id`   integer unsigned not null,
      PRIMARY KEY (`categorie_id`,`article_id`),
      CONSTRAINT `FK_CATEGORIE_CATEGORIE` FOREIGN KEY (`categorie_id`) REFERENCES `categorie` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
      CONSTRAINT `FK_CATEGORIE_ARTICLE`   FOREIGN KEY (`article_id`)   REFERENCES `article`   (`id`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into  `categorie_article` (`categorie_id`,`article_id`) VALUES
      (1, 3),
      (2, 1),
      (2, 4),(2, 7),(2, 8),
      (3, 1),(3, 2),(3, 5),
      (4, 3),(4, 4),(4, 5),
      (5, 2),(5, 6)
    --------------
     
    --------------
    select * from `categorie_article`
    --------------
     
    +--------------+------------+
    | categorie_id | article_id |
    +--------------+------------+
    |            2 |          1 |
    |            3 |          1 |
    |            3 |          2 |
    |            5 |          2 |
    |            1 |          3 |
    |            4 |          3 |
    |            2 |          4 |
    |            4 |          4 |
    |            3 |          5 |
    |            4 |          5 |
    |            5 |          6 |
    |            2 |          7 |
    |            2 |          8 |
    +--------------+------------+
    --------------
    DROP TABLE IF EXISTS `commentaire`
    --------------
     
    --------------
    create table `commentaire`
    ( `id`               integer unsigned  not null auto_increment primary key,
      `article_id`       integer unsigned  not null,
      `auteur_id`        integer unsigned  not null,
      `contenu`          text              not null,
      `date_commentaire` datetime          not null,
      CONSTRAINT `FK_COMMENTAIRE_ARTICLE` FOREIGN KEY (`article_id`) REFERENCES `article`     (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
      CONSTRAINT `FK_COMMENTAIRE_AUTEUR`  FOREIGN KEY (`auteur_id`)  REFERENCES `utilisateur` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
      index `idx_auteur_2`    (`auteur_id`),
      index `idx_commentaire` (`date_commentaire`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    drop trigger if exists `nbre_commentaire`
    --------------
     
    --------------
    create trigger `nbre_commentaire`
    before insert on `commentaire`
    for each row
    begin
      update `article` set `nbre_commentaire` = `nbre_commentaire` + 1 where `id` = new.`article_id`;
    end
    --------------
     
    --------------
    insert into `commentaire` (`article_id`,`auteur_id`,`contenu`,`date_commentaire`) VALUES
      (1, 4, 'Magnifique',                                     '2014-11-10 05:06:47'),
      (1, 3, 'Très joli',                                      '2014-11-04 04:47:35'),
      (2, 3, 'J''ai pas tout compris...',                      '2014-11-14 06:34:30'),
      (2, 2, 'Quel joli texte, j''adore !',                    '2014-11-05 23:07:52'),
      (3, 3, 'C''est gai tout ça...',                          '2014-11-26 05:42:04'),
      (4, 1, 'Tellement beau, on ne s''en lasse pas.',         '2014-11-23 07:44:33'),
      (5, 1, 'Incroyable !!!',                                 '2014-11-22 12:05:34'),
      (5, 2, 'Pas mal, j''aime bien',                          '2014-11-24 08:47:15'),
      (8, 1, 'Exceptionnel, mais un peu triste quand même...', '2014-11-15 21:56:05'),
      (5, 3, 'Mouais, pas convaincue...',                      '2014-11-09 09:09:09')
    --------------
     
    --------------
    select * from `commentaire`
    --------------
     
    +----+------------+-----------+------------------------------------------------+---------------------+
    | id | article_id | auteur_id | contenu                                        | date_commentaire    |
    +----+------------+-----------+------------------------------------------------+---------------------+
    |  1 |          1 |         4 | Magnifique                                     | 2014-11-10 05:06:47 |
    |  2 |          1 |         3 | Très joli                                      | 2014-11-04 04:47:35 |
    |  3 |          2 |         3 | J'ai pas tout compris...                       | 2014-11-14 06:34:30 |
    |  4 |          2 |         2 | Quel joli texte, j'adore !                     | 2014-11-05 23:07:52 |
    |  5 |          3 |         3 | C'est gai tout ça...                           | 2014-11-26 05:42:04 |
    |  6 |          4 |         1 | Tellement beau, on ne s'en lasse pas.          | 2014-11-23 07:44:33 |
    |  7 |          5 |         1 | Incroyable !!!                                 | 2014-11-22 12:05:34 |
    |  8 |          5 |         2 | Pas mal, j'aime bien                           | 2014-11-24 08:47:15 |
    |  9 |          8 |         1 | Exceptionnel, mais un peu triste quand même... | 2014-11-15 21:56:05 |
    | 10 |          5 |         3 | Mouais, pas convaincue...                      | 2014-11-09 09:09:09 |
    +----+------------+-----------+------------------------------------------------+---------------------+
    --------------
    select  `id`,
            `titre`,
            `nbre_commentaire`
      from  `article`
    --------------
     
    +----+------------------------------------+------------------+
    | id | titre                              | nbre_commentaire |
    +----+------------------------------------+------------------+
    |  1 | Confession                         |                2 |
    |  2 | Sonnet d'automne                   |                2 |
    |  3 | Le dormeur du val                  |                1 |
    |  4 | Les corbeaux                       |                1 |
    |  5 | Demain dès l'aube                  |                3 |
    |  6 | Après l'hiver                      |                0 |
    |  7 | Le désespoir est assis sur un banc |                0 |
    |  8 | Un beau matin                      |                1 |
    |  9 | testtriggersubstr                  |                0 |
    +----+------------------------------------+------------------+
    --------------
    DROP TABLE IF EXISTS `statistique`
    --------------
     
    --------------
    create table `statistique`
    ( `auteur_id`              integer unsigned  not null auto_increment primary key,
      `nbre_article`           integer unsigned  not null,
      `last_date_publication`  datetime          not null,
      `nbre_commentaire`       integer unsigned  not null,
      `last_date_commentaire`  datetime          not null,
      CONSTRAINT `FK_STATISTIQUE_AUTEUR`  FOREIGN KEY (`auteur_id`)  REFERENCES `utilisateur` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    drop view if exists `vue`
    --------------
     
    --------------
    create view `vue` as
        select  t1.`auteur_id`,
                count(t1.`id`) as nbre_article,
                t2.`date_publication` as last_date_publication,
                t3.`nbre_commentaire`,
                t4.`date_commentaire` as last_date_commentaire
     
          from  `article` as t1
     
    inner join  (    select  `auteur_id`,
                             max(`date_publication`) as date_publication
                       from  `article`
                   group by  `auteur_id`
                ) as t2
            on  t2.auteur_id = t1.auteur_id
     
    inner join  (    select  `auteur_id`,
                             count(`id`) as nbre_commentaire
                       from  `commentaire`
                   group by  `auteur_id`
                ) as t3
            on  t3.auteur_id = t1.auteur_id
     
    inner join  (    select  `auteur_id`,
                             max(`date_commentaire`) as date_commentaire
                       from  `commentaire`
                   group by  `auteur_id`
                ) as t4
            on  t4.auteur_id = t1.auteur_id
     
      group by  t1.auteur_id
    --------------
     
    --------------
    select * from `vue`
    --------------
     
    +-----------+--------------+-----------------------+------------------+-----------------------+
    | auteur_id | nbre_article | last_date_publication | nbre_commentaire | last_date_commentaire |
    +-----------+--------------+-----------------------+------------------+-----------------------+
    |         1 |            3 | 2019-01-01 00:00:00   |                3 | 2014-11-23 07:44:33   |
    |         2 |            2 | 2014-10-28 07:50:25   |                2 | 2014-11-24 08:47:15   |
    |         3 |            2 | 2014-10-30 22:25:30   |                4 | 2014-11-26 05:42:04   |
    |         4 |            2 | 2014-10-11 16:50:17   |                1 | 2014-11-10 05:06:47   |
    +-----------+--------------+-----------------------+------------------+-----------------------+
    --------------
    insert into `statistique` (`auteur_id`,`nbre_article`,`last_date_publication`,`nbre_commentaire`,`last_date_commentaire`)
      select  *
       from  `vue`
    --------------
     
    --------------
    select * from `statistique`
    --------------
     
    +-----------+--------------+-----------------------+------------------+-----------------------+
    | auteur_id | nbre_article | last_date_publication | nbre_commentaire | last_date_commentaire |
    +-----------+--------------+-----------------------+------------------+-----------------------+
    |         1 |            3 | 2019-01-01 00:00:00   |                3 | 2014-11-23 07:44:33   |
    |         2 |            2 | 2014-10-28 07:50:25   |                2 | 2014-11-24 08:47:15   |
    |         3 |            2 | 2014-10-30 22:25:30   |                4 | 2014-11-26 05:42:04   |
    |         4 |            2 | 2014-10-11 16:50:17   |                1 | 2014-11-10 05:06:47   |
    +-----------+--------------+-----------------------+------------------+-----------------------+
    --------------
    COMMIT
    --------------
     
    Appuyez sur une touche pour continuer...
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [10g] Trigger before insert
    Par Lung dans le forum Oracle
    Réponses: 6
    Dernier message: 21/12/2007, 16h22
  2. Trigger Before Insert et Before Update
    Par NicoNours dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 14/08/2007, 10h20
  3. Trigger : Before insert
    Par guitou0 dans le forum Développement
    Réponses: 6
    Dernier message: 29/06/2007, 11h39
  4. Trigger Before Insert
    Par Fred_ET dans le forum Administration
    Réponses: 7
    Dernier message: 22/11/2006, 00h29
  5. Créer un trigger "before insert" avec SQL Server
    Par bubi dans le forum Développement
    Réponses: 2
    Dernier message: 14/11/2005, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo