MYSQL中如何设置列默认值的介绍_MySQL
bitsCN.com
MYSQL中如何设置列默认值的介绍
MySQL目前不支持列的Default为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型,下面就详细说明TIMESTAMP列类型。
TIMESTAMP列类型
TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。
TIMESTAMP值显示尺寸的格式如下表所示:
+---------------+----------------+ | 列类型 | 显示格式 | | TIMESTAMP(14) | YYYYMMDDHHMMSS | | TIMESTAMP(12) | YYMMDDHHMMSS | | TIMESTAMP(10) | YYMMDDHHMM | | TIMESTAMP(8) | YYYYMMDD | | TIMESTAMP(6) | YYMMDD | | TIMESTAMP(4) | YYMM | | TIMESTAMP(2) | YY | +---------------+----------------+
“完整”TIMESTAMP格式是14位,但TIMESTAMP列也可以用更短的显示尺寸创造,最常见的显示尺寸是6、8、12、和14。你可以在创建表时指定一个任意的显示尺寸,但是定义列长为0或比14大均会被强制定义为列长14。列长在从1~13范围的奇数值尺寸均被强制为下一个更大的偶数。
所有的TIMESTAMP列都有同样的存储大小,使用被指定的时期时间值的完整精度(14位)存储合法的值不考虑显示尺寸。不合法的日期,将会被强制为0存储。
这有几个含意:
1、虽然你建表时定义了列TIMESTAMP(8),但在你进行数据插入与更新时TIMESTAMP列实际上保存了14位的数据(包括年月日时分秒),只不过在你进行查询时MySQL返回给你的是8位的年月日数据。如果你使用ALTER TABLE拓宽一个狭窄的TIMESTAMP列,以前被“隐蔽”的信息将被显示。
2、同样,缩小一个TIMESTAMP列不会导致信息失去,除了感觉上值在显示时,较少的信息被显示出。
3、尽管TIMESTAMP值被存储为完整精度,直接操作存储值的唯一函数是UNIX_TIMESTAMP();由于MySQL返回TIMESTAMP列的列值是进过格式化后的检索的值,这意味着你可能不能使用某些函数来操作TIMESTAMP列(例如HOUR()或SECOND()),除非TIMESTAMP值的相关部分被包含在格式化的值中。例如,一个TIMESTAMP列只有被定义为TIMESTAMP(10)以上时,TIMESTAMP列的HH部分才会被显示,因此在更短的TIMESTAMP值上使用HOUR()会产生一个不可预知的结果。
4、不合法TIMESTAMP值被变换到适当类型的“零”值(00000000000000)。(DATETIME,DATE亦然)
你可以使用下列语句来验证:
CREATE TABLE test ('id' INT (3) UNSIGNED AUTO_INCREMENT, 'date1' TIMESTAMP (8) PRIMARY KEY('id')); INSERT INTO test SET id = 1; SELECT * FROM test; +----+----------------+ | id | date1 | +----+----------------+ | 1 | 20021114 | +----+----------------+ ALTER TABLE test CHANGE 'date1' 'date1' TIMESTAMP(14); SELECT * FROM test; +----+----------------+ | id | date1 | +----+----------------+ | 1 | 20021114093723 | +----+----------------+
你可以使用TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果你有多个TIMESTAMP列,只有第一个自动更新。自动更新第一个TIMESTAMP列在下列任何条件下发生:
1、列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。
2、列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为它当前的值,MySQL为了效率而忽略更改。)
3、你明确地设定TIMESTAMP列为NULL. |
4、除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
CREATE TABLE test ( 'id' INT (3) UNSIGNED AUTO_INCREMENT, 'date1' TIMESTAMP (14), 'date2' TIMESTAMP (14), PRIMARY KEY('id') ); INSERT INTO test (id, date1, date2) VALUES (1, NULL, NULL); INSERT INTO test SET id= 2; +----+----------------+----------------+ | id | date1 | date2 | +----+----------------+----------------+ | 1 | 20021114093723 | 20021114093723 | | 2 | 20021114093724 | 00000000000000 | +----+----------------+----------------+
第一条指令因设date1、date2为NULL,所以date1、date2值均为当前时间,第二条指令因没有设date1、date2列值,第一个TIMESTAMP列date1为更新为当前时间,而二个TIMESTAMP列date2因日期不合法而变为“00000000000000”
UPDATE test SET id= 3 WHERE id=1; +----+----------------+----------------+ | id | date1 | date2 | +----+----------------+----------------+ | 3 | 20021114094009 | 20021114093723 | | 2 | 20021114093724 | 00000000000000 | +----+----------------+----------------+
这条指令没有明确地设定date2的列值,所以第一个TIMESTAMP列date1将被更新为当前时间。
UPDATE test SET id= 1,date1=date1,date2=NOW() WHERE id=3; +----+----------------+----------------+ | id | date1 | date2 | +----+----------------+----------------+ | 1 | 20021114094009 | 20021114094320 | | 2 | 20021114093724 | 00000000000000 | +----+----------------+----------------+
这条指令因设定date1=date1,所以在更新数据时date1列值并不会发生改变,而因设定date2=NOW(),所以在更新数据时date2列值会被更新为当前时间。此指令等效为:
UPDATE test SET id= 1,date1=date1,date2=NULL WHERE id=3;
因MySQL返回的 TIMESTAMP 列为数字显示形式,你可以用DATE_FROMAT()函数来格式化 TIMESTAMP 列。
SELECT id,DATE_FORMAT(date1,'%Y-%m-%d %H:%i:%s') As date1, DATE_FORMAT(date2,'%Y-%m-%d %H:%i:%s') As date2 FROM test; +----+---------------------+---------------------+ | id | date1 | date2 | +----+---------------------+---------------------+ | 1 | 2002-11-14 09:40:09 | 2002-11-14 09:43:20 | | 2 | 2002-11-14 09:37:24 | 0000-00-00 00:00:00 | +----+---------------------+---------------------+ SELECT id,DATE_FORMAT(date1,'%Y-%m-%d') As date1, DATE_FORMAT(date2,'%Y-%m-%d') As date2 FROM test; +----+-------------+-------------+ | id | date1 | date2 | +----+-------------+-------------+ | 1 | 2002-11-14 | 2002-11-14 | | 2 | 2002-11-14 | 0000-00-00 | +----+-------------+-------------+
在某种程度上,你可以把一种日期类型的值赋给一个不同的日期类型的对象。然而,而尤其注意的是:值有可能发生一些改变或信息的损失:
1、如果你将一个DATE值赋给一个DATETIME或TIMESTAMP对象,结果值的时间部分被设置为'00:00:00',因为DATE值中不包含有时间信息。
2、如果你将一个DATETIME或TIMESTAMP值赋给一个DATE对象,结果值的时间部分被删除,因为DATE类型不存储时间信息。
3、尽管DATETIME, DATE和TIMESTAMP值全都可以用同样的格式集来指定,但所有类型不都有同样的值范围。例如,TIMESTAMP值不能比1970早,也不能比2037晚,这意味着,一个日期例如'1968-01-01',当作为一个DATETIME或DATE值时它是合法的,但它不是一个正确TIMESTAMP值!并且如果将这样的一个对象赋值给TIMESTAMP列,它将被变换为0。
当指定日期值时,当心某些缺陷:
1、允许作为字符串指定值的宽松格式能被欺骗。例如,,因为“:”分隔符的使用,值'10:11:12'可能看起来像时间值,但是如果在一个日期中使用,上下文将作为年份被解释成'2010-11-12'。值'10:45:15'将被变换到'0000-00-00',因为'45'不是一个合法的月份。
2、以2位数字指定的年值是模糊的,因为世纪是未知的。MySQL使用下列规则解释2位年值: 在00-69范围的年值被变换到2000-2069。 在范围70-99的年值被变换到1970-1999。
bitsCN.com

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

Quelles sont les perspectives d'emploi de la pharmacie clinique à l'Université médicale de Harbin ? Bien que la situation nationale de l'emploi ne soit pas optimiste, les diplômés en pharmacie ont toujours de bonnes perspectives d'emploi. Dans l'ensemble, l'offre de diplômés en pharmacie est inférieure à la demande. Les sociétés pharmaceutiques et les usines pharmaceutiques sont les principaux canaux d'absorption de ces diplômés. La demande de talents dans l'industrie pharmaceutique augmente également de manière constante. Selon les rapports, ces dernières années, le rapport offre-demande pour les étudiants diplômés dans des domaines tels que les préparations pharmaceutiques et la chimie médicinale naturelle a même atteint 1:10. Direction d'emploi de la majeure en pharmacie clinique : Après l'obtention de leur diplôme, les étudiants se spécialisant en médecine clinique peuvent s'engager dans le traitement médical, la prévention, la recherche médicale, etc. dans les unités médicales et sanitaires, la recherche médicale et d'autres départements. Postes d'emploi : Représentant médical, représentant commercial pharmaceutique, représentant commercial, directeur commercial, directeur régional des ventes, responsable des investissements, chef de produit, spécialiste produit, infirmière

Comment nettoyer le dossier temporaire Au fur et à mesure que nous utilisons l'ordinateur, les fichiers temporaires (fichiers temporaires) s'accumuleront progressivement. Ces fichiers temporaires sont générés lorsque nous utilisons l'ordinateur, comme les fichiers cache lors de la navigation sur le Web, les fichiers temporaires lors de l'installation de logiciels, etc. Ne pas nettoyer le dossier temporaire pendant une longue période peut occuper une grande quantité d'espace disque et affecter la vitesse de l'ordinateur. Par conséquent, nettoyer régulièrement le dossier temporaire est une étape nécessaire pour maintenir les performances de l’ordinateur. Ci-dessous, nous présenterons quelques moyens simples de nettoyer le dossier temporaire. Méthode 1 : Nettoyer manuellement le t

Récemment, des amis ont expliqué comment télécharger des fichiers image Win10. Étant donné qu'il existe de nombreux fichiers image sur le marché, que dois-je faire si je souhaite trouver un fichier standard à télécharger ? Aujourd'hui, l'éditeur vous a apporté le lien pour télécharger l'image et les étapes détaillées de la solution. Examinons-les ensemble. Téléchargement rapide de l'image Win10 et lien de téléchargement du didacticiel d'installation >>> Accueil système Image Ghostwin101909 version 64 bits v2019.11<<<>>>Image Win10 64 bits v2019.07<<<>>>Image Win10 32 bits v2019. 07<< <1. Rechercher sur Internet

Comment réinitialiser le système Win10 ? De nos jours, de nombreux amis aiment utiliser des ordinateurs équipés du système Win10. Cependant, ils rencontreront inévitablement des problèmes insolubles lors de l'utilisation d'ordinateurs. À ce stade, vous pouvez essayer de réinitialiser le système. Suivons l'éditeur pour regarder le tutoriel sur la réinitialisation du système Win10. Les utilisateurs dans le besoin ne devraient pas le manquer. Tutoriel sur la réinitialisation du système Win10 1. Cliquez sur Windows et sélectionnez Paramètres. 2. Cliquez sur Mise à jour et sécurité. 3. Sélectionnez Restaurer. 4. Cliquez sur Démarrer à droite pour réinitialiser cet ordinateur. Ce qui précède représente l'intégralité du contenu de [Comment réinitialiser le système Win10 - Tutoriel sur la réinitialisation du système Win10]. Des didacticiels plus intéressants sont disponibles sur ce site !

Comment vérifier la configuration de l’ordinateur win11 ? Le système win11 est une version très pratique du système d'exploitation informatique. Cette version offre aux utilisateurs des fonctions riches, permettant aux utilisateurs d'avoir une meilleure expérience d'exploitation informatique. De nombreux amis qui utilisent des ordinateurs sont curieux de connaître la configuration spécifique de leur ordinateur et la manière d'effectuer cette opération. dans le système win11 ? De nombreux amis ne savent pas comment fonctionner en détail. L'éditeur a compilé un didacticiel sur la façon d'afficher la configuration de l'ordinateur win11 ci-dessous. Si vous êtes intéressé, suivez l'éditeur et continuez à lire ! Tutoriel d'affichage de la configuration de l'ordinateur Win11 1. Cliquez sur l'icône Windows dans la barre des tâches ci-dessous ou appuyez sur la « touche Windows » du clavier pour ouvrir le menu Démarrer. 2. Recherchez « Paramètres » ou « sett » dans le menu Démarrer.

Comment résoudre le problème selon lequel le test d'environnement échoue lors de la réinstallation du système et doit être réécrit. La raison est la suivante : le téléphone mobile est empoisonné. Vous pouvez installer un logiciel antivirus tel que Mobile Manager pour l'antivirus 2. De nombreux fichiers indésirables. les fichiers sont stockés à l'intérieur du téléphone mobile, ce qui entraîne l'occupation de la mémoire active du téléphone mobile. Effacez simplement le cache du téléphone pour résoudre ce problème. 3. La mémoire du téléphone est trop occupée par les logiciels et les fichiers enregistrés. Il n'y a aucun problème à supprimer fréquemment les fichiers et les logiciels inutiles tant que votre configuration matérielle répond aux exigences d'installation. utilisez le nouveau directement. Réinstallez le système à partir du disque système ! Vous pouvez utiliser une clé USB ou un disque dur pour l'installation, ce qui est très rapide. Mais la clé est d'utiliser un disque système avec une bonne compatibilité (prend en charge l'installation en modes IDE, ACHI et RAID), et il peut être activé automatiquement et en permanence, ce qui a été vérifié. donc

Cet article vous apprendra comment ajouter la valeur d'un élément en HTML. Nous avons une compréhension de base de l'attribut value en HTML et des situations dans lesquelles il est utilisé. Attendons avec impatience une meilleure compréhension de l'attribut HTMLvalue. En HTML, l'attribut value est utilisé pour décrire la valeur de l'élément avec lequel il est utilisé. Il a des significations différentes pour différents composants HTML. Utilisation - Il peut être utilisé avec des éléments ,,,, et. -Lorsque l'attribut value est présent, il indique quelle est la valeur par défaut de l'élément d'entrée. Il a différentes significations pour différents types d'entrée : lorsque le bouton apparaît dans "bouton", "réinitialiser" et &qu

MySQL est un système de gestion de bases de données relationnelles open source largement utilisé dans divers types de développement d'applications. Lorsque vous utilisez la base de données MySQL, vous devez souvent modifier le mot de passe pour améliorer la sécurité de la base de données. Cet article expliquera comment modifier le mot de passe MySQL à travers des exemples de code spécifiques. Dans MySQL, vous pouvez modifier le mot de passe en suivant les étapes suivantes : Connectez-vous au serveur de base de données MySQL : Ouvrez une invite de commande ou une fenêtre de terminal et exécutez la commande suivante : mysql-uroo
