Table des matières
一个表中至多只能有一个字段设置CURRENT_TIMESTAMP
分析需求
1 使用触发器。
2 将第一个timestamp的default设置为0
3 老老实实在sql语句中使用时间戳。
Maison base de données tutoriel mysql mysql多个TimeStamp设置_MySQL

mysql多个TimeStamp设置_MySQL

Jun 01, 2016 pm 01:38 PM
Oui

bitsCN.com

timestamp设置默认值是Default CURRENT_TIMESTAMP

timestamp设置随着表变化而自动更新是ON UPDATE CURRENT_TIMESTAMP

 

但是由于

一个表中至多只能有一个字段设置CURRENT_TIMESTAMP

两行设置DEFAULT CURRENT_TIMESTAMP是不行的。

 

还有一点要注意

CREATE TABLE `device` (    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,    `toid` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'toid',    `createtime` TIMESTAMP NOT NULL COMMENT '创建时间',    `updatetime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新时间',    PRIMARY KEY (`id`),    UNIQUE INDEX `toid` (`toid`))COMMENT='设备表'COLLATE='utf8_general_ci'ENGINE=InnoDB;
Copier après la connexion

像这个设置也是不行的。

原因是mysql会默认为表中的第一个timestamp字段(且设置了NOT NULL)隐式设置DEFAULAT CURRENT_TIMESTAMP。所以说上例那样的设置实际上等同于设置了两个CURRENT_TIMESTAMP。

分析需求

一个表中,有两个字段,createtime和updatetime。

1 当insert的时候,sql两个字段都不设置,会设置为当前的时间

2 当update的时候,sql中两个字段都不设置,updatetime会变更为当前的时间

这样的需求是做不到的。因为你无法避免在两个字段上设置CURRENT_TIMESTAMP

解决办法有几个:

1 使用触发器。

当insert和update的时候触发器触发时间设置。

网上有人使用这种方法。当然不怀疑这个方法的可用性。但是对于实际的场景来说,无疑是为了解决小问题,增加了复杂性。

2 将第一个timestamp的default设置为0

表结构如下:

CREATE TABLE `device` (    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,    `toid` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'toid',    `createtime` TIMESTAMP NOT NULL DEFAULT 0 COMMENT '创建时间',    `updatetime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',    PRIMARY KEY (`id`),    UNIQUE INDEX `toid` (`toid`))COMMENT='设备表'COLLATE='utf8_general_ci'ENGINE=InnoDB;
Copier après la connexion

这样的话,你需要的插入和更新操作变为:

insert into device set toid=11,createtime=null;

update device set toid=22 where id=1;

这里注意的是插入操作的createtime必须设置为null!!

虽然我也觉得这种方法很不爽,但是这样只需要稍微修改insert操作就能为sql语句减负,感觉上还是值得的。这也确实是修改数据库最小又能保证需求的方法了。当然这个方法也能和1方法同时使用,就能起到减少触发器编写数量的效果了。

3 老老实实在sql语句中使用时间戳。

这个是最多人也是最常选择的

表结构上不做过多的设计:

CREATE TABLE `device` (    `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,    `toid` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT 'toid',    `createtime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',    `updatetime` TIMESTAMP NOT NULL COMMENT '最后更新时间',    PRIMARY KEY (`id`),    UNIQUE INDEX `toid` (`toid`))COMMENT='设备表'COLLATE='utf8_general_ci'ENGINE=InnoDB;
Copier après la connexion

这样你就需要在插入和update的操作的时候写入具体的时间戳。

insert device set toid=11,createtime=’2012-11-2 10:10:10’,updatetime=’2012-11-2 10:10:10’

update device set toid=22,updatetime=’2012-11-2 10:10:10’ where id=1

其实反观想想,这样做的好处也有一个:current_timestamp是mysql特有的,当数据库从mysql转移到其他数据库的时候,业务逻辑代码是不用修改的。

 

ps:这三种方法的取舍就完全看你自己的考虑了。顺便说一下,最后,我还是选择第三种方法。

bitsCN.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'est-ce que la pièce de protocole NEAR ? Quelles sont les caractéristiques des pièces du protocole NEAR ? Qu'est-ce que la pièce de protocole NEAR ? Quelles sont les caractéristiques des pièces du protocole NEAR ? Mar 04, 2024 pm 11:20 PM

NEARProtocol : une plateforme blockchain évolutive et conviviale NEARProtocol est une plateforme blockchain utilisant la technologie de partitionnement conçue pour relever les défis rencontrés par la technologie blockchain en termes d'évolutivité, de convivialité et de sécurité. Il fournit aux développeurs une plate-forme efficace et conviviale qui leur permet de créer et de déployer facilement des applications décentralisées (dApps). NEARProtocol est conçu pour réduire les obstacles au développement de la blockchain tout en offrant un haut degré d'efficacité et de sécurité. En adoptant la technologie de partitionnement, NEARProtocol peut mieux gérer les transactions à grande échelle et offrir aux utilisateurs des délais de confirmation de transaction plus rapides. Dans l'ensemble, NEARProtocol est conçu pour fournir

Comment implémenter l'instruction pour afficher les données de la table dans MySQL ? Comment implémenter l'instruction pour afficher les données de la table dans MySQL ? Nov 08, 2023 pm 01:40 PM

Titre : Déclarations et exemples de code spécifiques pour afficher les données de table dans MySQL MySQL est un système de gestion de base de données relationnelle open source largement utilisé dans des applications de toutes tailles. Dans MySQL, l'affichage des données d'une table est une opération très basique. Ce qui suit présente comment implémenter cette opération à travers des instructions spécifiques et des exemples de code. Tout d'abord, nous présenterons les instructions et les exemples de code spécifiques pour afficher les données de table via l'outil de ligne de commande MySQL. Supposons que nous ayons une table nommée "employés", voici le laissez-passer

Comment définir des autorisations en lecture seule sur une table dans la base de données Oracle ? Comment définir des autorisations en lecture seule sur une table dans la base de données Oracle ? Mar 06, 2024 pm 03:03 PM

Dans la base de données Oracle, la définition d'autorisations en lecture seule sur les tables est une opération très importante, qui peut protéger la sécurité des données et éviter les erreurs d'opération. Ce qui suit explique comment définir des autorisations en lecture seule sur les tables d'une base de données Oracle et fournit des exemples de code spécifiques. Tout d'abord, nous devons comprendre que dans la base de données Oracle, les utilisateurs obtiennent des autorisations sur les tables via une autorisation. Les autorisations de table incluent les opérations SELECT (requête), INSERT (insertion), UPDATE (mise à jour) et DELETE (suppression). Nous présenterons ici

Utilisez MySQL pour créer une table système de recommandation afin d'implémenter la fonction du système de recommandation Utilisez MySQL pour créer une table système de recommandation afin d'implémenter la fonction du système de recommandation Jul 02, 2023 am 10:01 AM

Utilisez MySQL pour créer une table système de recommandation afin d'implémenter la fonction du système de recommandation. Le système de recommandation est un système utilisé pour recommander du contenu personnalisé aux utilisateurs en fonction de leurs préférences et de leurs comportements. Dans le système de recommandation, la base de données est un composant clé qui stocke des informations telles que les données utilisateur, les données d'élément et les données d'interaction utilisateur-élément. En tant que système de gestion de base de données relationnelle couramment utilisé, MySQL peut être utilisé pour créer des tables de système de recommandation et implémenter les fonctions du système de recommandation. Cet article expliquera comment utiliser MySQL pour créer une table système de recommandation et la démontrera à travers des exemples de code.

Quel est le nombre de broches dans l'interface du câble de la carte mère de l'alimentation Antec 650 ? (Schéma de câblage de l'alimentation Antec 650) Quel est le nombre de broches dans l'interface du câble de la carte mère de l'alimentation Antec 650 ? (Schéma de câblage de l'alimentation Antec 650) Jan 03, 2024 am 10:46 AM

Combien de broches possède le câble de la carte mère Antec 650w ? Le câble d'alimentation de la carte mère d'alimentation Antec 650W est généralement composé de 24 broches, ce qui constitue la plus grande interface d'alimentation de la carte mère. Sa fonction est de connecter la carte mère et l'alimentation électrique pour alimenter la carte mère et les autres composants du système. De plus, l'alimentation Antec 650W peut également inclure d'autres types d'interfaces d'alimentation, telles que CPU8pin, PCIe6+2pin, etc., pour connecter d'autres composants tels que le CPU et les cartes graphiques indépendantes. Tutoriel sur le routage de la carte mère Le routage de la carte mère est le processus de connexion de circuits entre divers composants électroniques lors de la conception d'une carte mère. Dans ce processus, des facteurs tels que la stabilité du circuit, la vitesse de transmission du signal et la précision doivent être pris en compte. Lorsque vous acheminez le câblage selon le schéma de circuit, faites attention à la disposition et sélectionnez la largeur et la distance de ligne appropriées à éviter.

Liste des configurations recommandées du boîtier de l'ordinateur Microsoft : liste des configurations recommandées du boîtier de l'ordinateur Microsoft Liste des configurations recommandées du boîtier de l'ordinateur Microsoft : liste des configurations recommandées du boîtier de l'ordinateur Microsoft Dec 28, 2023 am 11:36 AM

Un boîtier d'ordinateur Microsoft est un étui utilisé pour protéger votre ordinateur. Il offre non seulement une protection supplémentaire mais ajoute également un effet décoratif. Pour ceux qui souhaitent ajouter des éléments personnalisés à leur ordinateur, les boîtiers d'ordinateur Microsoft sont un choix idéal. Le tableau de configuration recommandée des boîtiers d'ordinateur Microsoft est un tableau détaillé qui répertorie les configurations recommandées pour différents modèles et spécifications de boîtiers d'ordinateur Microsoft. Nous présenterons en détail le tableau de configuration recommandé des boîtiers d'ordinateur Microsoft et en expliquerons certains aspects. 1. Modèles applicables Dans le tableau de configuration recommandé, la première chose à considérer concerne les modèles applicables de boîtiers d'ordinateur Microsoft. Différents modèles de boîtiers d'ordinateur Microsoft peuvent avoir des tailles et des formes différentes, vous devez donc choisir le boîtier approprié en fonction de votre modèle d'ordinateur. Le tableau de configuration répertorie les microcontrôleurs applicables aux différents modèles.

Comment implémenter l'instruction de renommer la table dans MySQL ? Comment implémenter l'instruction de renommer la table dans MySQL ? Nov 08, 2023 pm 12:11 PM

MySQL est un système de gestion de base de données relationnelle couramment utilisé qui prend en charge l'opération de renommage des tables. Normalement, renommer une table comporte certains risques, vous devez donc être très prudent lorsque vous effectuez cette opération. Dans cet article, nous explorerons comment implémenter l'instruction rename table dans MySQL et fournirons des exemples de code détaillés. Dans MySQL, vous pouvez utiliser l'instruction ALTERTABLE pour renommer une table. Voici la syntaxe de base de l'instruction de renommage ALTERTABLE : ALTERTABLEo

MySQL crée une table des droits des utilisateurs pour implémenter la fonction de gestion des droits des utilisateurs MySQL crée une table des droits des utilisateurs pour implémenter la fonction de gestion des droits des utilisateurs Jul 02, 2023 pm 06:57 PM

MySQL crée des tables de droits d'utilisateur pour implémenter des fonctions de gestion des droits d'utilisateur. MySQL est un système de gestion de base de données relationnelle couramment utilisé qui fournit de puissantes fonctions de gestion des droits d'utilisateur. Dans un environnement de base de données multi-utilisateurs, il est très important de gérer correctement les autorisations des utilisateurs. Cet article présentera comment implémenter la fonction de gestion des droits des utilisateurs en créant une table des droits des utilisateurs et l'illustrera à travers des exemples de code. 1. Créer une table d'autorisations Tout d'abord, nous devons créer une table d'autorisations pour stocker les informations d'autorisation de l'utilisateur. Les champs de la table d'autorisation incluent l'ID utilisateur (user_

See all articles