2010-08-03 4 views
1

La table dans MySQL a 1 colonne de problème: creation_date.Сreate trigger en MySQL ou pas (via PHP)?

Lors de l'insertion d'une nouvelle ligne via PHP, j'ai pensé qu'il serait correct d'insérer la date directement dans la requête, MySQL doit le faire lui-même.

Ai-je besoin de faire le trigger, ou il serait préférable d'utiliser PHP comme prévu? Comment auriez-vous fait?

PS: MySQL: How to create trigger for setting creation date for new rows

+0

Conclusion: 1. La colonne TIMESTAMP avec la valeur par défaut CURRENT_TIMESTAMP peut être une seule. 2. Si vous voulez insérer automatiquement la date lors de la création d'une action de ligne, vous pouvez utiliser: ALTER TABLE 'jv-temp'.store_order MODIFIER création_date TIMESTAMP NULL par défaut CURRENT_TIMESTAMP à la mise à jour CURRENT_TIMESTAMP; – ajile

Répondre

3

Utilisez TIMESTAMP DEFAULT champ CURRENT_TIMESTAMP

http://dev.mysql.com/doc/refman/5.0/en/timestamp.html

+0

Faites attention à cela, car la colonne timestamp sera définie sur un UPDATE. Vos mises à jour devront spécifier TIMESTAMP_COLUMN = TIMESTAMP_COLUMN comme l'une des choses SET, sinon la date de création sera perdue. –

+0

Uniquement si ON UPDATE CURRENT_TIMESTAMP dans la définition CREATE TABLE. – Mchl

+0

Ça ne marche pas. Sur CREATE fonctionne, mais sur UPDATE, il vaut NULL. – ajile

1

Si vous créez un déclencheur pour votre table (ou adopter la proposition ci-dessus) vous ne faut pas oublier de le faire dans votre PHP. Cet avantage apparaîtra lorsque quelqu'un d'autre créera un autre PHP à insérer dans la même table.