无法在这个位置找到: head2.htm
当前位置: 建站首页 > 新闻 > 公司新闻 >

MySQL 怎样让一个字段名的值不可以被减为负数

时间:2021-04-04 12:39来源:未知 作者:jianzhan 点击:
在这里种情景下,物件的总数不是能为负数的。那怎样保证在扣除这一总数的情况下,不容易被扣成负数呢。假定表数据信息以下:用程序在实际操作以前分辨? num 是不是充足扣除 ? 

在这里种情景下,物件的总数不是能为负数的。那怎样保证在扣除这一总数的情况下,不容易被扣成负数呢。

假定表数据信息以下:


用程序在实际操作以前分辨? num 是不是充足扣除 ? 这显著不是可靠的。由于有高并发的状况存有。

在高并发的状况下,a 的 num 能变成 -10 自然,前提条件你的 sql 是那么写的:

UPDATE table SET num=num-10 WHERE sku="a"
肯定不可以用程序去测算 num 的值,在取值到 sql 中,在高并发状况下  num 能变成 0,不正确实例:

$data = 'select * from table where sku="a"'; $num = $data['num'] - 10; UPDATE table SET num=$num WHERE sku="a"
全部的计划方案务必有恰当的实际操作 sql 也便是,第一种 sql。 计划方案1: 运用数据信息库的事务管理,

在 update  的 sql 实行进行后,select num 的值分辨是不是低于0,假如低于,回退。

计划方案2: 变更 num 字段名的特性,无标记整形。

即字段名特性中的  UN,Unisigned

参照 sql :

ALTER TABLE `table` CHANGE COLUMN `num` `num` INT(11) UNSIGNED NOT NULL DEFAULT '0' ;
这类状况下,当 num 被减成负数的情况下,数据信息库会回到不正确。

Error Code: 1690. BIGINT UNSIGNED value is out of range in ......

补好截屏


新疆省SEO笑靥的blog共享全新,最合理的新疆省seo营销推广实例教程、seo提升计划方案、seoseo优化,而且出示对各制造行业客户订制要求营销推广、程序制作开发设计,在其中包括的有:后端开发开发设计【PHP,JAVA,C#,.NET】,前端开发开发设计【Html5,JavaScript,css3,vue+react】,android【安卓系统开发设计】,ios【iPhone开发设计】负荷布署,网站安全性检验,程序bug修补等详询::Tel: (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: ajaxfeedback.htm
栏目列表
推荐内容


扫描二维码分享到微信

在线咨询
联系电话

400-888-8866