事情是这样的,我在MySQL中创建了一个叫“销售表”的table,其中有一个字段为“序号”,我为它设置了主键约束PRIMARY KEY,字段长度为 4,同时也为它设置了auto-increment 字段。
但是就在我在查表的时候发现 字段长度 4 不见了,请问这是什么原因呢?
这是我建表时的源代码:
CREATE TABLE 销售表
(序号 TINYINT(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
销售日期 DATE NULL,
客户名称 VARCHAR(30) NULL,
货号 CHAR(4) NULL,
单价 DECIMAL(8, 2) NULL,
数量 INT(4) NULL,
`销售员ID` CHAR(6) NULL,
FOREIGN KEY (货号) REFERENCES 商品一览表(货号),
FOREIGN KEY (销售员ID) REFERENCES 员工表(员工ID)
);
找到原因了,MySQL在 8.0.17
版本开始,就不会显示如 TINYINT
, SMALLINT
, MEDIUMINT
, INT
, BIGINT
这些数据类型的字段长度。
MySQL官网上是这么说的:
感觉是 int , tinyint 类型的长度由系统控制, 这样便于迁移。
你可以试试做个表导出成sql , 看定义里有没有长度。
int,tinyint类型的数据都有取值范围,以tinyint为例,最大值为127,所以无论你是否设置长度,127内都可以赋值,不管你是设置了长度为1或2,所以设置数据库脚本时系统估计做了自动处理,望采纳