Maison  >  Article  >  base de données  >  Comment utiliser les contraintes de valeur par défaut de MySQL

Comment utiliser les contraintes de valeur par défaut de MySQL

(*-*)浩
(*-*)浩original
2019-05-07 16:40:336698parcourir

Cet article présentera les contraintes par défaut, comment les utiliser et les effets après modification.

Cours recommandé : Tutoriel MySQL.

Comment utiliser les contraintes de valeur par défaut de MySQL

Contraintes communes de la base de données :

contrainte par défaut par défaut

non nulle : contrainte non nulle, précisez ; une certaine La colonne n'est pas NULL ;

unique : contrainte unique, spécifiant que les données d'une certaine colonne et de plusieurs combinaisons de colonnes ne peuvent pas être répétées

clé primaire : contrainte de clé primaire, spécifiant que ; les données d'une certaine colonne ne sont pas vides, uniques, ne peuvent pas être répétées ;

clé étrangère : clé étrangère, précise que l'enregistrement de la colonne appartient à un enregistrement de la table principale et fait référence à une autre donnée ; 🎜>

check : check, spécifie une expression pour la vérification Spécifier les données


1 par défaut définit la valeur par défaut du. colonne

Lors de l'insertion d'une nouvelle ligne dans le tableau, aucune valeur explicite n'est attribuée à la colonne Si la valeur par défaut de la colonne est définie, la valeur par défaut sera obtenue automatiquement ; , ce sera (NULL).

 -- 创建一张user表
CREATE TABLE `test`.`user`(  
  `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `name` VARCHAR(225) COMMENT '姓名',
  `sex` TINYINT(1) DEFAULT 1 COMMENT '性别 1男 0女',
  PRIMARY KEY (`id`)
) ENGINE=INNODB CHARSET=utf8 COLLATE=utf8_general_ci
Ajouter des contraintes par défaut au champ :

1.在创建表时:直接在字段类型的后面加上 DEFAULT(value),具体看创建user表时的sex字段;
2.在存在表的情况下添加:
  使用sql语句 ALTER TABLE `user` MODIFY `sex` TINYINT(1) DEFAULT 1; 即可为添加 `sex` 字段添加默认约束;
  使用sql语句 ALTER TABLE `user` MODIFY `name` VARCHAR(225)DEFAULT '小明'; 即可为添加 `name` 字段添加默认约束;

tips:默认约束是不可以使用函数的,所以 ALTER TABLE `user` ADD COLUMN `date` DATETIME DEFAULT NOW() AFTER `sex`; 是不可行的。

Supprimer les contraintes par défaut :

移除默认约束和添加默认约束操作方式一样,都是修改表的字段;
ALTER TABLE `user` MODIFY `sex` TINYINT(1); 
这样就移除了sex的默认约束。
Maintenant, nous insérons une donnée :

INSERT INTO `user`(`name`) VALUES('小明');

SELECT * FROM `user`;

结果:
-----------------------------------
id   name   sex 
   小明    1
-----------------------------------

Bien sûr, nous pouvons aussi :

INSERT INTO `user`(`name`,`sex`) VALUES('小明',DEFAULT);
SELECT * FROM `user`;

结果:
---------------------------------
id     name     sex 
     小明        1
---------------------------------

Si vous faites cela :

INSERT INTO `user`(`sex`) VALUES(DEFAULT);
SELECT * FROM `user`;

结果:
-----------------------------------
id   name    sex 
   (NULL)   1
-----------------------------------


Conseils : Vous pouvez utiliser DEFAULT pour effectuer à la fois la mise à jour et la requête

-- 查询sex字段的默认值  SELECT DEFAULT(`sex`) FROM `user`; 
-- 更新sex为默认值 UPDATE `user` SET `sex` = DEFAULT WHERE `id`='1';

 ;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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