admin

商品库存肯定是很有限的,如何控制库存不让出现超买是一个非常重要的问题。事务是控制库存超卖的必要不充分条件。举例:总库存:4个商品请求人:a、购买1个商品 b、购买2个商品 c、购买3个商品程序如下:beginTranse try{ result = db- query('select amount from s_store where postID = 12345'); if(result- amount 0){ //quantity为请求减掉的库存数量 db- query('update s_store set amount = amount - qua

2021-01-20 MySQL 1344
admin

tags字段是逗号隔开tag id。查询一select i.id, i.title, i.tags, (select GROUP_CONCAT(tb_tag.title SEPARATOR ',') from tb_tag where id in (i.tags) ) as tags_title from tb_item as i; 结果:查询二select i.id, i.title, i.tags, (select GROUP_CONCAT(tb_tag.title SEPARATOR ',') fro

2021-01-13 MySQL 619
admin

(一)建表规约1. 【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint( 1 表示是, 0 表示否)。说明: 任何字段如果为非负数,必须是 unsigned。注意: POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在 resultMap 设置从 is_xxx 到 Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,坚持 is_xxx 的命名方式是为了明确其取值含义与取值范围。正例: 表达逻辑删除的字段名 is_deleted, 1 表示删除, 0 表示未删除。2. 【强制】表名、字段名必须使用小写

2020-04-24 MySQL 628
admin

MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思。之前 MySQL 的 utf8 只支持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多文本平面。低版本的MySQL支持的utf8编码,最大字符长度为 3 字节,如果遇到 4 字节的字符就会出现错误了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xFFFF,也就是 Unicode 中的基本多文平面(BMP)。任何不在基本多文平面的 Unicode字符,都无法使用MySQL原有的 utf8 字符集存储。比如 Emoji 表情。utf8_unicode_ci比较准

2020-03-29 MySQL 500
admin

1.切记不要用字符串存储日期我记得我在大学的时候就这样干过,而且现在很多对数据库不太了解的新手也会这样干,可见,这种存储日期的方式的优点还是有的,就是简单直白,容易上手。但是,这是不正确的做法,主要会有下面两个问题:i. 字符串占用的空间更大!ii. 字符串存储的日期比较效率比较低(逐个字符进行比对),无法用日期相关的 API 进行计算和比较。2.Datetime 和 Timestamp 之间抉择Datetime 和 Timestamp 是 MySQL 提供的两种比较相似的保存时间的数据类型。他们两者究竟该如何选择呢?通常我们都会首选 Timestamp。 下面说一下为什么这样做!2.1 Da

2020-03-17 MySQL 852
admin

本方法不易维护,建议取出数据,在程序中递归,例如 https://javascript.net.cn/article?id=654代码如下:delimiter / DROP FUNCTION IF EXISTS `getChild` / CREATE FUNCTION `getChild`(rootId INT) RETURNS VARCHAR(1000) BEGIN DECLARE ptemp varchar(1000); DECLARE ctemp varchar(1000); SET ptemp = '#'; SET ctemp =ca

2020-02-13 MySQL 595
admin

1, 指定了AUTO_INCREMENT的列必须要建索引,不然会报错,索引可以为主键索引,当然也可以为非主键索引。(不一定要做主键)2, 指定了auto_increment的列,在插入时:如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。3,当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。4,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。5,对于MyISAM表,如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果

2019-07-26 MySQL 593
admin

一般不要使用保留关键字。如果使用了保留关键字,将关键字前后加" ` " 可以解决问题。 MySQL允许部分关键字用做未引起来的识别符,因为许多人以前曾使用过它们。下面列出了一些例子: ACTION,BIT,DATE,ENUM,NO,TEXT,TIME,TIMESTAMP MySQL保留关键字如下: ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB

2019-07-17 MySQL 577
admin

有一个表有十万条数据,SELECT COUNT(*) FROM t_tablename; 时间长达10秒以上。 解决办法,把 Primary Key 加上 Unique 约束了,速度变成30毫秒了,解决了。 不太清楚原因,先记着。 参考:https://blog.csdn.net/landstream/article/details/79673176

2019-05-17 MySQL 856
admin

INSERT INTO tp_article( name, user_id, category_id, thumbnail, content, description, create_time, tags ) SELECT title, FLOOR(2 + (RAND() * 10)), category, thumbnail, content, description, UNIX_TIMESTAMP(create_time) + ce

2018-10-26 MySQL 672
ngtwewy
随机推荐
macOS 生成 icns 图标
使用N-API 写 Node.js 的 C语言扩展
ffmpeg 下载加密的切片视频 m3u8
使用 cheerio 解析 HTML
Node.js MySQL2 如何编写事务
Node.js 图片处理模块 Jimp
依赖注入(DI)和控制反转(Ioc)
Debian11 安装笔记1:编译安装Nginx、Naxsi 和 Njs
MySQL 批量插入数据时如何解决重复问题
使用Node.js http 模块采集数据时的日文 EUC-JP 乱码,使用 iconv-lite 转码

微信联系我

夜间模式切换
回到顶部