Mysql -- zerofill自动填充
在公司做项目的时候需要建表,如下:
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 '导师飞书用户id',
`project_dataset_check_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '项目唯一标识',
`project_section_key` varchar(128) NOT NULL DEFAULT '' COMMENT '阶段唯一标识',
`project_section_task_key` varchar(128) NOT NULL DEFAULT '' COMMENT '任务唯一标识',
`detail_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '任务类型',
`task_name` varchar(64) NOT NULL DEFAULT '' COMMENT '任务名称',
`detail` longtext NOT NULL COMMENT '任务详情',
`state` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '任务状态',
`created_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间戳,单位秒',
`updated_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间戳,单位秒',
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='项目学员任务表';
CREATE TABLE `project` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键id',
`dataset_check_id` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '项目唯一标识',
`title` varchar(255) NOT NULL DEFAULT '' COMMENT '项目名',
`training_type` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '培训分类',
`principals_uids` varchar(255) NOT NULL DEFAULT '' COMMENT '英文逗号分隔的负责人飞书用户id',
`principals_dept_id_paths` varchar(1024) NOT NULL DEFAULT '' COMMENT '英文逗号分隔的负责人部门id path',
`join_rule` varchar(2048) NOT NULL DEFAULT '' COMMENT '加入规则,json',
`auto_join_rule` varchar(2048) NOT NULL DEFAULT '' COMMENT '自动加入规则,json',
`state` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '项目状态',
`created_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间戳,单位秒',
`updated_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间戳,单位秒',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_1` (`dataset_check_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目表';
其中int(11),一开始是以为只能存储11以内的数字[1,2,3,4,5,6,7,8,9,10],但是这个是时间戳啊,时间戳都是这样的1670208098十位数字。后来查了之后才知道 int (11) 在mysql 里面 是指 显示 长度 !!!
跟存值范围没半毛钱关系 !跟存值范围没半毛钱关系 !跟存值范围没半毛钱关系 !
但是从8.0.17版本开始,TINYINT, SMALLINT, MEDIUMINT, INT, and BIGINT类型的显示宽度将失效。
公司的mysql版本:5.6.51-log
这个显示宽度必须加zerofill才生效。
还有如果某一数值列规定了zerofill,则自动把此列变为无符号整数。
若规定了zerofill的数据列,如果数据长度没有达到规定长度,则在数据前自动填充0



但看别人写的代码加了显宽,但也不知道为什么没有加zerofill,有懂的下面评论下!
https://blog.csdn.net/qq_35387940/article/details/123325009
https://blog.51cto.com/u_15861560/5822220
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我有一个驼峰式字符串,例如:JustAString。我想按照以下规则形成长度为4的字符串:抓取所有大写字母;如果超过4个大写字母,只保留前4个;如果少于4个大写字母,则将最后大写字母后的字母大写并添加字母,直到长度变为4。以下是可能发生的3种情况:ThisIsMyString将产生TIMS(大写字母);ThisIsOneVeryLongString将产生TIOV(前4个大写字母);MyString将生成MSTR(大写字母+tr大写)。我设法用这个片段解决了前两种情况:str.scan(/[A-Z]/).first(4).join但是,我不太确定如何最好地修改上面的代码片段以处理最后一种
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty
我最喜欢的Google文档功能之一是它会在我工作时不断自动保存我的文档版本。这意味着即使我在进行关键更改之前忘记在某个点进行保存,也很有可能会自动创建一个保存点。至少,我可以将文档恢复到错误更改之前的状态,并从该点继续工作。对于在MacOS(或UNIX)上运行的Ruby编码器,是否有具有等效功能的工具?例如,一个工具会每隔几分钟自动将Gitcheckin我的本地存储库以获取我正在处理的文件。也许我有点偏执,但这点小保险可以让我在日常工作中安心。 最佳答案 虚拟机有些人可能讨厌我对此的回应,但我在编码时经常使用VIM,它具有自动保存功
我看到其他人也遇到过类似的问题,但没有一个解决方案对我有用。0.3.14gem与其他gem文件一起存在。我已经完全按照此处指示完成了所有操作:https://github.com/brianmario/mysql2.我仍然得到以下信息。我不知道为什么安装程序指示它找不到include目录,因为我已经检查过它存在。thread.h文件存在,但不在ruby目录中。相反,它在这里:C:\RailsInstaller\DevKit\lib\perl5\5.8\msys\CORE\我正在运行Windows7并尝试在Aptana3中构建我的Rails项目。我的Ruby是1.9.3。$gemin
我已经开始使用mysql2gem。我试图弄清楚一些基本的事情——其中之一是如何明确地执行事务(对于批处理操作,比如多个INSERT/UPDATE查询)。在旧的ruby-mysql中,这是我的方法:client=Mysql.real_connect(...)inserts=["INSERTINTO...","UPDATE..WHEREid=..",#etc]client.autocommit(false)inserts.eachdo|ins|beginclient.query(ins)rescue#handleerrorsorabortentirelyendendclient.commi
我正在尝试解决http://projecteuler.net/problem=1.我想创建一个方法,它接受一个整数,然后创建一个包含它前面的所有整数的数组,并将整数本身作为数组中的值。以下是我目前所拥有的。代码不起作用。defmake_array(num)numbers=Array.newnumcount=1numbers.eachdo|number|numbers 最佳答案 (1..num).to_a是您在Ruby中需要做的全部。1..num将创建一个Range对象,以1开始并以任意值num结束是。Range对象有to_a方法通过