我在Debian上使用5.5.46服务器。
我想知道以下语法有什么问题,我收到以下错误:
第5行的错误1064(42000):您的SQL语法有错误; 检查与您的MySQL服务器版本对应的手册 正确的语法使用附近' desc VARCHAR(10)UNSIGNED NOT NULL, hora VARCHAR(5)UNSIGNED NOT NULL,'在第3行
drop database loteria;
create database loteria;
use loteria;
create table loteria (
id SMALLINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
desc VARCHAR(10) UNSIGNED NOT NULL,
hora VARCHAR(5) UNSIGNED NOT NULL,
primary key(id)
);
我无法看到错误,请您指导我识别错误。
感谢您的时间。
答案 0 :(得分:2)
varchar
类型不能是" UNSIGNED
"。它们是字母数字类型 - UNSIGNED
不适用。此外,desc
是保留字。
以下内容将起作用,回溯列名称。请注意,只需要勾选desc
,因为它是保留字。但是,为了安全起见,通常会反复勾选它们。列名称中的空格或连字符可能会触发类似的语法错误。
create table `loteria` (
`id` SMALLINT(3) UNSIGNED NOT NULL AUTO_INCREMENT,
`desc` VARCHAR(10) NOT NULL,
`hora` VARCHAR(5) NOT NULL,
primary key(`id`)
);
有关mysql中保留字的列表,请参阅This Link,并且它们的名称旁边有(R)。
答案 1 :(得分:0)
两个问题:desc
是保留字,不能用作列名,varchar
不能是“无符号”,因为它是字符串类型。