https://www.cnblogs.com/hellojesson/p/6025548.html 环境描述: MySQL 5.7.13 问题描述: 当前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') |
|
来自: jasonbetter > 《mysql》