mysql bigint的数字只能是大于等于0的数,否则sql执行报错

2021-12-30 星期四 0913 by:enAn
mysql bigint的数字,更新,只能是字段>=0的正数,否则sql执行报错
如:库存或者积分数据,前提,不能需要项目设定,不能是负数

只需要把字段的属性,最下面的注释那块,勾选-无符号[unsigned ]
手动-打开表设置,字段A修改后的属性

`current_points_value` bigint(19) unsigned DEFAULT '0' COMMENT '当前可用会员积分',

执行验证sql

#第一种注释写法(单行注释)
/*第二种注释写法(适合多行注释)*/
-- 第三种注释写法(--之后需要加一个空格)

SELECT * from test_bigint;

/* 更新到10位数字 */
update test_bigint t set t.point = 98765432101234 WHERE t.id = 1002;

-- 再次查询-更新的结果
SELECT * from test_bigint t WHERE t.id = 1002;

# 更新,字段 > 0
update test_bigint t set t.point = 98765432101234 WHERE t.id = 1001;

# 更新, 字段 = 0
update test_bigint t set t.point = 0 WHERE t.id = 1001;

# 更新,字段 < 0 【[Err] 1264 - Out of range value for column 'point' at row 1】
update test_bigint t set t.point = -1 WHERE t.id = 1001;

初始化脚本

-- 如果存在,则删除掉
drop table if exists.test_bigint;
-- 创建
create table.test_bigint(
id bigint(20) PRIMARY key NOT NULL COMMENT '显示20的位数',
name VARCHAR(100) not null COMMENT '名字',
point bigint(20) unsigned null COMMENT '积分-正整数,unsigned',
created_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间-自动更新'
)comment '测试-正整数-更新为小于0的数,sql报错';

INSERT into.test_bigint(id,name,point,created_time,updated_time)
VALUES(1001,'张三',100,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP);

INSERT into.test_bigint(id,name,point,created_time,updated_time)
VALUES(1002,'李四',200,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP);

INSERT into.test_bigint(id,name,point,created_time,updated_time)
VALUES(1003,'王五',300,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值