[英]Using tinyint as datatype in MySQL 5.5.57
我在使用以下SQL查询时遇到问题。 当我将tinyint指定为其数据类型时,会在状态字段中出现错误。 我使用的语法错误吗?
询问
create table device_master(
id INT,
serial_number VARCHAR,
status TINYINT,
created_at DATETIME,
updated_at TIMESTAMP ON UPDATE CURRENT TIMESTAMP,
created_by INT,
updated_by INT, primary key(id));
错误
错误1064(42000):您的SQL语法有错误; 在第1行上,检查与您的MySQL服务器版本相对应的手册,以使用正确的语法以在'status TINYINT,created_at DATETIME,Updated_at TIMESTAMP ON UPDATE CURRENT TIM'附近使用
我认为不是tinyint是您的问题。 您必须为serial_number声明varchar的长度:
create table device_master(
id INT,
serial_number VARCHAR(100),
status TINYINT,
created_at DATETIME,
updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
created_by INT,
updated_by INT, primary key(id));
否,问题在于您没有为serial_number
字段指定长度。 它应该定义为serial_number VARCHAR(N),
,其中N是最大字符长度。
请注意,语法错误消息中的代码摘录在单词status
之前开始,指示该错误是在指定tinyint
数据类型之前发生的。
实际上有两个语法错误
VARCHAR(255)
ON UPDATE CURRENT_TIMESTAMP
(请注意_) 尝试运行:
create table device_master(
id INT,
serial_number VARCHAR(255),
status TINYINT,
created_at DATETIME,
updated_at TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
created_by INT,
updated_by INT,
primary key(id)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.