Mysql中zerofill自動(dòng)填充的實(shí)現(xiàn)
1. 問題起源
在公司做項(xiàng)目的時(shí)候需要建表,如下:
CREATE TABLE `project_student_task` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵id', `user_id` varchar(64) NOT NULL DEFAULT '' COMMENT '飛書用戶id', `dept_id_path` varchar(255) NOT NULL DEFAULT '' COMMENT '用戶部門id path', `mentor_user_id` varchar(64) NOT NULL DEFAULT '' COMMENT '導(dǎo)師飛書用戶id', `project_dataset_check_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '項(xiàng)目唯一標(biāo)識(shí)', `project_section_key` varchar(128) NOT NULL DEFAULT '' COMMENT '階段唯一標(biāo)識(shí)', `project_section_task_key` varchar(128) NOT NULL DEFAULT '' COMMENT '任務(wù)唯一標(biāo)識(shí)', `detail_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '任務(wù)類型', `task_name` varchar(64) NOT NULL DEFAULT '' COMMENT '任務(wù)名稱', `detail` longtext NOT NULL COMMENT '任務(wù)詳情', `state` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '任務(wù)狀態(tài)', `created_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '創(chuàng)建時(shí)間戳,單位秒', `updated_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新時(shí)間戳,單位秒', PRIMARY KEY (`id`), UNIQUE KEY `uniq_1` (`project_dataset_check_id`,`project_section_key`,`project_section_task_key`,`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='項(xiàng)目學(xué)員任務(wù)表'; CREATE TABLE `project` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主鍵id', `dataset_check_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '項(xiàng)目唯一標(biāo)識(shí)', `title` varchar(255) NOT NULL DEFAULT '' COMMENT '項(xiàng)目名', `training_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '培訓(xùn)分類', `principals_uids` varchar(255) NOT NULL DEFAULT '' COMMENT '英文逗號(hào)分隔的負(fù)責(zé)人飛書用戶id', `principals_dept_id_paths` varchar(1024) NOT NULL DEFAULT '' COMMENT '英文逗號(hào)分隔的負(fù)責(zé)人部門id path', `join_rule` varchar(2048) NOT NULL DEFAULT '' COMMENT '加入規(guī)則,json', `auto_join_rule` varchar(2048) NOT NULL DEFAULT '' COMMENT '自動(dòng)加入規(guī)則,json', `state` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '項(xiàng)目狀態(tài)', `created_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '創(chuàng)建時(shí)間戳,單位秒', `updated_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新時(shí)間戳,單位秒', PRIMARY KEY (`id`), UNIQUE KEY `uniq_1` (`dataset_check_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='項(xiàng)目表';
其中int(11),一開始是以為只能存儲(chǔ)11以內(nèi)的數(shù)字[1,2,3,4,5,6,7,8,9,10],但是這個(gè)是時(shí)間戳啊,時(shí)間戳都是這樣的 1670208098 十位數(shù)字。后來查了之后才知道 int (11) 在mysql 里面 是指 顯示 長(zhǎng)度 !??!
跟存值范圍沒半毛錢關(guān)系 !跟存值范圍沒半毛錢關(guān)系 !跟存值范圍沒半毛錢關(guān)系 !
但是從8.0.17版本開始,TINYINT, SMALLINT, MEDIUMINT, INT, and BIGINT類型的顯示寬度將失效。
公司的mysql版本:5.6.51-log
這個(gè)顯示寬度必須加zerofill才生效。還有如果某一數(shù)值列規(guī)定了zerofill,則自動(dòng)把此列變?yōu)闊o符號(hào)整數(shù)。若規(guī)定了zerofill的數(shù)據(jù)列,如果數(shù)據(jù)長(zhǎng)度沒有達(dá)到規(guī)定長(zhǎng)度,則在數(shù)據(jù)前自動(dòng)填充0



但看別人寫的代碼加了顯寬,但也不知道為什么沒有加zerofill,有懂的下面評(píng)論下!
2. 學(xué)習(xí)的文檔(解決這個(gè)問題的文檔)
http://www.fzitv.net/article/258445.htm
http://www.fzitv.net/database/29721612f.htm
到此這篇關(guān)于Mysql中zerofill自動(dòng)填充的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Mysql zerofill自動(dòng)填充內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL中ROUND函數(shù)進(jìn)行四舍五入操作陷阱分析
這篇文章主要介紹了MySQL中ROUND函數(shù)進(jìn)行四舍五入操作陷阱,結(jié)合實(shí)例形式分析了mysql使用ROUND函數(shù)進(jìn)行四舍五入運(yùn)算中出現(xiàn)的問題及其錯(cuò)誤原因,需要的朋友可以參考下2018-06-06
MySQL 大數(shù)據(jù)量快速插入方法和語句優(yōu)化分享
對(duì)于事務(wù)表,應(yīng)使用BEGIN和COMMIT代替LOCK TABLES來加快插入2012-04-04
MySQL別名規(guī)則與使用應(yīng)用場(chǎng)景
MySQL 起別名是一項(xiàng)功能強(qiáng)大且靈活的特性,通過合理運(yùn)用列別名和表別名,可以極大地提升查詢語句的質(zhì)量,下面就來介紹一下MySQL別名規(guī)則與使用應(yīng)用場(chǎng)景,感興趣的可以了解一下2025-05-05
centos7下mysqldump定時(shí)備份數(shù)據(jù)庫的方法實(shí)現(xiàn)
MySQL Dump是MySQL提供的方便導(dǎo)出數(shù)據(jù)庫數(shù)據(jù)的工具,本文主要介紹了centos7下mysqldump定時(shí)備份數(shù)據(jù)庫的方法實(shí)現(xiàn),感興趣的可以了解一下2023-08-08
MySQL兩種表存儲(chǔ)結(jié)構(gòu)MyISAM和InnoDB的性能比較測(cè)試
MySQL兩種表存儲(chǔ)結(jié)構(gòu)MyISAM和InnoDB的性能比較測(cè)試...2006-12-12

