Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用BOOL列创建表时出现MySQL错误_Mysql_Sql - Fatal编程技术网

使用BOOL列创建表时出现MySQL错误

使用BOOL列创建表时出现MySQL错误,mysql,sql,Mysql,Sql,我创建了以下脚本来设置MySQL数据库: 创建数据库(如果不存在); 使用magicc_帽; 创建桌面人员( personID INT非空自动增量, firstName VARCHAR(45)不为空, 姓瓦查尔(45岁), 存档布尔值不为空默认值“0”, 主键(personID) ); 创建表类别( categoryID INT非空自动增量, categoryName VARCHAR(45)不为空, 说明文字, 存档布尔值不为空默认值“0”, 主键(类别ID) ); 创建表格主页( homeID

我创建了以下脚本来设置MySQL数据库:

创建数据库(如果不存在);
使用magicc_帽;
创建桌面人员(
personID INT非空自动增量,
firstName VARCHAR(45)不为空,
姓瓦查尔(45岁),
存档布尔值不为空默认值“0”,
主键(personID)
);
创建表类别(
categoryID INT非空自动增量,
categoryName VARCHAR(45)不为空,
说明文字,
存档布尔值不为空默认值“0”,
主键(类别ID)
);
创建表格主页(
homeID INT NOT NULL自动递增,
homeName VARCHAR(45)不为空,
注释文本,
存档布尔值不为空默认值“0”,
主键(homeID)
};
创建表项(
itemID INT非空自动增量,
itemName VARCHAR(100)不为空,
标识符VARCHAR(100),
数量INT不为空,
categoryID INT不为空,
homeID INT不为空,
itemStatus枚举('normal'、'Breaked'、'missing')不为NULL默认值为'normal',
说明文字,
图像VARCHAR(45),
注释文本,
存档布尔值不为空默认值“0”,
主键(itemID),
外键(categoryID)引用类别(categoryID),
外键(homeID)引用homeID
};
创建表项目(
projectID INT非空自动增量,
projectName VARCHAR(45)不为空,
说明文字,
存档布尔值不为空默认值“0”,
主键(projectID)
);
创建表签出(
签出ID INT NOT NULL自动递增,
itemID INT不为空,
personID INT不为空,
投射INT,
数量INT不为空,
过期时间日期时间,
inDateTime日期时间,
输出注释文本,
无辜者文本,
查克丁布尔,
存档布尔值不为空默认值“0”,
主键(签出ID),
外键(itemID)引用项(itemID),
外键(personID)引用人(personID),
外键(projectID)引用项目(projectID)
);
但是,当我运行此脚本时,会收到以下错误消息:

ERROR 1064(42000):您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第8行“}”附近使用的正确语法
错误1064(42000):您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第17行“}”附近使用的正确语法
错误1215(HY000):无法添加外键约束
我怀疑这与使用bool数据类型有关,因为第8行和第17行正在发生这种情况;然而,我还没有在网上找到任何解决此问题的方法。有人能看到问题的原因吗?我正在本地Windows计算机上运行MySQL 5.6.11


谢谢!

字符必须相同。使用括号表示两者

CREATE TABLE homes (

};
在这种情况下:它向您显示错误消息中的错误字符:

check the manual that corresponds to your MySQL server version for the right
syntax to use near '}' at line 8

字符必须相同。两者都使用括号

CREATE TABLE homes (

};
在这种情况下:它向您显示错误消息中的错误字符:

check the manual that corresponds to your MySQL server version for the right
syntax to use near '}' at line 8

去掉花括号,换成


非常有用:

去掉大括号,换成


效果很好:

试试这个,我测试了它,它成功地创建了数据库。问题是由于左括号和右括号不匹配造成的

CREATE DATABASE IF NOT EXISTS magicc_hat;
USE magicc_hat;

CREATE TABLE people (
  personID INT NOT NULL AUTO_INCREMENT,
  firstName VARCHAR(45) NOT NULL,
  lastName VARCHAR(45),
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (personID)
);

CREATE TABLE categories (
  categoryID INT NOT NULL AUTO_INCREMENT,
  categoryName VARCHAR(45) NOT NULL,
  description TEXT,
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (categoryID)
);

CREATE TABLE homes (
  homeID INT NOT NULL AUTO_INCREMENT,
  homeName VARCHAR(45) NOT NULL,
  notes TEXT,
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (homeID)
);

CREATE TABLE items (
  itemID INT NOT NULL AUTO_INCREMENT,
  itemName VARCHAR(100) NOT NULL,
  identifier VARCHAR(100),
  quantity INT NOT NULL,
  categoryID INT NOT NULL,
  homeID INT NOT NULL,
  itemStatus ENUM('normal', 'broken', 'missing') NOT NULL DEFAULT 'normal',
  description TEXT,
  image VARCHAR(45),
  notes TEXT,
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (itemID),
  FOREIGN KEY (categoryID) REFERENCES categories(categoryID),
  FOREIGN KEY (homeID) REFERENCES homes(homeID)
);

CREATE TABLE projects (
  projectID INT NOT NULL AUTO_INCREMENT,
  projectName VARCHAR(45) NOT NULL,
  description TEXT,
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (projectID)
);

CREATE TABLE checkouts (
  checkoutID INT NOT NULL AUTO_INCREMENT,
  itemID INT NOT NULL,
  personID INT NOT NULL,
  projectID INT,
  quantity INT NOT NULL,
  outDateTime DATETIME,
  inDateTime DATETIME,
  outNotes TEXT,
  inNotes TEXT,
  checkedIn BOOL,
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (checkoutID),
  FOREIGN KEY (itemID) REFERENCES items(itemID),
  FOREIGN KEY (personID) REFERENCES people(personID),
  FOREIGN KEY (projectID) REFERENCES projects(projectID)
);

试试这个,我测试了它,它成功地创建了数据库。问题是由于左括号和右括号不匹配造成的

CREATE DATABASE IF NOT EXISTS magicc_hat;
USE magicc_hat;

CREATE TABLE people (
  personID INT NOT NULL AUTO_INCREMENT,
  firstName VARCHAR(45) NOT NULL,
  lastName VARCHAR(45),
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (personID)
);

CREATE TABLE categories (
  categoryID INT NOT NULL AUTO_INCREMENT,
  categoryName VARCHAR(45) NOT NULL,
  description TEXT,
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (categoryID)
);

CREATE TABLE homes (
  homeID INT NOT NULL AUTO_INCREMENT,
  homeName VARCHAR(45) NOT NULL,
  notes TEXT,
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (homeID)
);

CREATE TABLE items (
  itemID INT NOT NULL AUTO_INCREMENT,
  itemName VARCHAR(100) NOT NULL,
  identifier VARCHAR(100),
  quantity INT NOT NULL,
  categoryID INT NOT NULL,
  homeID INT NOT NULL,
  itemStatus ENUM('normal', 'broken', 'missing') NOT NULL DEFAULT 'normal',
  description TEXT,
  image VARCHAR(45),
  notes TEXT,
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (itemID),
  FOREIGN KEY (categoryID) REFERENCES categories(categoryID),
  FOREIGN KEY (homeID) REFERENCES homes(homeID)
);

CREATE TABLE projects (
  projectID INT NOT NULL AUTO_INCREMENT,
  projectName VARCHAR(45) NOT NULL,
  description TEXT,
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (projectID)
);

CREATE TABLE checkouts (
  checkoutID INT NOT NULL AUTO_INCREMENT,
  itemID INT NOT NULL,
  personID INT NOT NULL,
  projectID INT,
  quantity INT NOT NULL,
  outDateTime DATETIME,
  inDateTime DATETIME,
  outNotes TEXT,
  inNotes TEXT,
  checkedIn BOOL,
  archived BOOL NOT NULL DEFAULT '0',

  PRIMARY KEY (checkoutID),
  FOREIGN KEY (itemID) REFERENCES items(itemID),
  FOREIGN KEY (personID) REFERENCES people(personID),
  FOREIGN KEY (projectID) REFERENCES projects(projectID)
);

您有如下2个语法错误。。。 由于未创建下表,您将面临外键错误。。 在sqls下运行您的问题将得到解决:)


您有如下2个语法错误。。。 由于未创建下表,您将面临外键错误。。 在sqls下运行您的问题将得到解决:)


您是否认为您正在使用
}
而您应该使用
?啊,愚蠢的语法错误。
}
在我使用的文本编辑器中看起来几乎相同,所以我没有捕捉到它。谢谢你发现它!该查询现在运行良好。请随意接受以下答案之一。难怪它已经有7个答案了。=DDo您认为您可能正在使用
>
而您应该在哪里使用
?啊,愚蠢的语法错误。
}
在我使用的文本编辑器中看起来几乎相同,所以我没有捕捉到它。谢谢你发现它!该查询现在运行良好。请随意接受以下答案之一。难怪它已经有7个答案了