【发布时间】:2018-12-17 21:32:41
【问题描述】:
create table Users
(
AttendeeID varchar not null,
FRAG boolean null,
FirstName string null,
LastName string null,
BadgeName varchar null,
BadgeNumber int not null,
DateOfBirth date null,
EmailAddress int not null,
Password password null,
PrivacyPolicy boolean null,
TermsConditions boolean null
);
create unique index Users_AttendeeID_uindex
on Users (AttendeeID);
create unique index Users_BadgeNumber_uindex
on Users (BadgeNumber);
create unique index Users_EmailAddress_uindex
on Users (EmailAddress);
alter table Users
add constraint Users_pk
primary key (AttendeeID);
所以,我正在学习数据库,并且我正在为我的 dbms 使用 Datagrip,但是当我尝试执行此操作时,我收到了以下错误:
[42000][1064] 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 'not null 附近使用的正确语法, FRAG 布尔空值, 名字字符串空, 姓氏字符串空, Ba' 在第 3 行。
原来的代码不是空的,所以我把它改成空了,不明白问题出在哪里。我在以前的问题中没有找到答案,任何帮助都会很棒。谢谢。
【问题讨论】:
-
您必须为 VARCHAR 指定长度:例如 VARCHAR(255)。此外,MySQL 没有 BOOLEAN 数据类型。您可以改用 TINYINT(1) UNSIGNED 并将 1 存储为 true,将 0 存储为 false。或者您可以使用 ENUM。
-
BOOLEAN 是 TINYINT 的别名,但它并不是真正的问题。建议将唯一索引上的一个作为表的主键,可能是
AttendeeID。 -
感谢您的帮助!
-
顺便说一下,DataGrip 应该在您运行查询之前突出显示您的语法错误:pp.userapi.com/Xw-zJsCkPNdkoOqG8Ex4Lx_bdoCat3yW22J6Sg/…