zoukankan      html  css  js  c++  java
  • Mysql 修改字段默认值

    环境描述:

    MySQL 5.7.13

    问题描述:
    建表的时候,users_info表的role_id字段没有默认值,后期发现注册的时候,需要提供给用户一个默认角色,也就是给role_id字段一个默认值。

    当前users_info表的role_id 在创建表的时候,没有设置默认值,数据库自动设置为空。

    原先建表语句:role_id字段。

    修改字段默认值:role_id默认值设置为:1

    mysql> alter table users_info alter column role_id set default 1;

    测试:

    mysql> insert into users_info(username,passwd,phone_number,email) values('赵六',md5('123456'),'13700007777','777777777@qq.com');

    修改字段默认值语法:

    alter table 表名 alter column 字段名 drop default; (若本身存在默认值,则先删除)
    
    alter table 表名 alter column 字段名 set default 默认值;(若本身不存在则可以直接设定)

    测试代码:

    --由于users_info表创建的时候,添加了外键约束,所以,小伙伴们测试的话,建议先建个角色表roles
    CREATE TABLE  roles(  
        role_id smallint unsigned primary key auto_increment, #角色id   
        role_name varchar(20) not null unique #角色名称
    )ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- 创建用户信息表 role_id字段没设默认值
    CREATE TABLE `users_info` (
      `user_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
      `username` varchar(20) NOT NULL,
      `passwd` char(60) NOT NULL,
      `phone_number` varchar(11) DEFAULT NULL,
      `email` varchar(60) DEFAULT NULL,
      `role_id` smallint(5) unsigned,
      `create_time` datetime NOT NULL default now(),
      PRIMARY KEY (`user_id`),
      UNIQUE KEY `username` (`username`),
      KEY `fk_role_id` (`role_id`),
      CONSTRAINT `fk_role_id` FOREIGN KEY (`role_id`) REFERENCES `roles` (`role_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    -- 插入几条测试数据
    insert into roles(role_name) values('初始注册角色');
    
    insert into users(username,passwd,phone_number,email) values('张三',md5('123456'),'13700008888','7654321@qq.com')
  • 相关阅读:
    linux rename命令批量修改文件名
    深度学习在推断阶段(inference)的硬件实现方法概述
    pkg-config原理及用法
    可测性分析
    CMD常用命令
    CMD命令:不是内部或者外部命令也不是可运行的程序或批处理文件
    main函数的参数argc和argv
    Eclipse中的特殊注释:TODO、XXX、FIXME
    whl文件(python)安装方法
    linux软链接和硬链接
  • 原文地址:https://www.cnblogs.com/hellojesson/p/6025548.html
Copyright © 2011-2022 走看看