这个MySQL语法有什么问题-错误1064。。?

这个MySQL语法有什么问题-错误1064。。?,mysql,sql,database,Mysql,Sql,Database,我正试图为大学建立一个数据库,我遇到了一个问题。 当我执行文件(cmd中的源文件名)时,出现以下错误: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREAT E TABLE IF NOT EXISTS `Owner1` (

我正试图为大学建立一个数据库,我遇到了一个问题。 当我执行文件(cmd中的源文件名)时,出现以下错误:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'CREAT
E TABLE IF NOT EXISTS `Owner1` (
  `password1` varchar(100) NOT NULL defaul' at line 14
我似乎不知道我在SQL方面哪里出了问题(我已经好几年没做SQL了)

这是我的SQL:

--
-- Database : `db`
--
CREATE DATABASE IF NOT EXISTS `db`
  DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
USE db;

CREATE TABLE IF NOT EXISTS `Category` (
  `category_id` int(20) NOT NULL default '',
  `name` varchar(100) NOT NULL,
  `description` varchar(200) NOT NULL,
  `sub_category_id` int(20) NULL,

  PRIMARY KEY  (category_id, name),

  FOREIGN KEY Category(sub_category_id) REFERENCES Category(category_id) ON DELETE CASCADE
)   

-- --------------------------------------------------------

CREATE TABLE IF NOT EXISTS `Owner` (
  `password` varchar(100) NOT NULL default '',
  `account_name` varchar(100) NOT NULL default '',

  PRIMARY KEY  (password, account_name)

)   

CREATE TABLE IF NOT EXISTS `Company` (
  `name` varchar(100) NOT NULL default '',
  `password` varchar(100) NOT NULL default '',
  `company_type` varchar(13) NOT NULL default '',
  `office_location` varchar(200) NOT NULL default '',
  `description` varchar(255) NOT NULL default '',
  `trade_mark` varchar(100) NOT NULL default '',
  `ph_num` varchar(12) NOT NULL default '',
  PRIMARY KEY  (name, password),

  FOREIGN KEY Company(name) REFERENCES Owner(account_name) ON DELETE CASCADE,
  FOREIGN KEY Company(password) REFERENCES Owner(password) ON DELETE CASCADE
)   

-- --------------------------------------------------------

CREATE TABLE IF NOT EXISTS `Individual` (
  `name` varchar(100) NOT NULL default '',
  `password` varchar(100) NOT NULL default '',
  `contact` varchar(200) NOT NULL default '',
  `reg_exp` DATE NOT NULL,
  PRIMARY KEY  (name, password),

  FOREIGN KEY Invidual(name) REFERENCES Owner(account_name) ON DELETE CASCADE,
  FOREIGN KEY Invidual(password) REFERENCES Owner(password) ON DELETE CASCADE
)   

-- --------------------------------------------------------

CREATE TABLE IF NOT EXISTS `Product` (
  `EPC` varchar(200) NOT NULL default '',
  `expiry_date` DATE NOT NULL,
  `production_date` DATE NOT NULL,
  `prod_description` varchar(200) NOT NULL default '',
  `item_name` varchar(100) NOT NULL default '',
  `manufacturer_info` varchar(200) NOT NULL default '',
  `account_name` varchar(100) NOT NULL default '',
  `password` varchar(100) NOT NULL default '',


  PRIMARY KEY  (EPC),

  FOREIGN KEY Product(account_name) REFERENCES Owner(account_name) ON DELETE CASCADE,
  FOREIGN KEY Product(password) REFERENCES Owner(password) ON DELETE CASCADE
)   
-- --------------------------------------------------------

CREATE TABLE IF NOT EXISTS `Prod_Cat` (
  `name` varchar(100) NOT NULL default '',
  `category_id` int(20) NOT NULL,
  `EPC` varchar(200) NOT NULL default '',
  PRIMARY KEY  (name, category_id, EPC),

  FOREIGN KEY Prod_Cat(name) REFERENCES Category(name) ON DELETE CASCADE,
  FOREIGN KEY Prod_Cat(EPC) REFERENCES Product(EPC) ON DELETE CASCADE,
  FOREIGN KEY Prod_Cat(category_id) REFERENCES Category(category_id) ON DELETE CASCADE
)   





-- --------------------------------------------------------
CREATE TABLE IF NOT EXISTS `RFID_Reader` (
  `ip` varchar(50) NOT NULL default '',
  `type` varchar(7) NOT NULL,
  `account_name` varchar(100) NOT NULL default '',
  `password` varchar(100) NOT NULL default '',

  PRIMARY KEY  (ip),

  FOREIGN KEY (RFID_Reader.account_name) REFERENCES (Owner.account_name) ON DELETE CASCADE,
  FOREIGN KEY (RFID_Reader.password) REFERENCES (Owner.password) ON DELETE CASCADE
)   

-- --------------------------------------------------------

CREATE TABLE IF NOT EXISTS `Location` (
  `ip` varchar(50) NOT NULL default '',
  `longitude` varchar(7) NOT NULL,
  `lattitude` varchar(7) NOT NULL default '',
  `description` varchar(200) NOT NULL default '',

  PRIMARY KEY  (ip, longitude, lattitude),

  FOREIGN KEY Location(ip) REFERENCES RFID_Reader(ip) ON DELETE CASCADE
)   

-- --------------------------------------------------------

--- Here TODO

CREATE TABLE IF NOT EXISTS `Track_Record` (
  `location` varchar(50) NOT NULL default '',
  `product_type` varchar(100) NOT NULL,
  `date` DATE NOT NULL,
  `EPC` varchar(200) NOT NULL default '',
  `ip` varchar(50) NOT NULL default '',

  PRIMARY KEY  (ip, longitude, lattitude),

  FOREIGN KEY Location(ip) REFERENCES RFID_Reader(ip) ON DELETE CASCADE
)   
如果有人不介意指出我做错了什么,我将不胜感激

谢谢你
科里:)

我想在每次
创建表之后。。。(…)
语句您需要一个
在下一个
创建表
语句之前。因此:

CREATE TABLE IF NOT EXISTS `Category` (
  `category_id` int(20) NOT NULL default '',
  `name` varchar(100) NOT NULL,
  `description` varchar(200) NOT NULL,
  `sub_category_id` int(20) NULL,

  PRIMARY KEY  (category_id, name),

  FOREIGN KEY Category(sub_category_id) REFERENCES Category(category_id) ON DELETE CASCADE
)   

-- --------------------------------------------------------

CREATE TABLE IF NOT EXISTS `Owner` (
  `password` varchar(100) NOT NULL default '',
  `account_name` varchar(100) NOT NULL default '',

  PRIMARY KEY  (password, account_name)

)   
将成为:

CREATE TABLE IF NOT EXISTS `Category` (
  `category_id` int(20) NOT NULL default '',
  `name` varchar(100) NOT NULL,
  `description` varchar(200) NOT NULL,
  `sub_category_id` int(20) NULL,

  PRIMARY KEY  (category_id, name),

  FOREIGN KEY Category(sub_category_id) REFERENCES Category(category_id) ON DELETE CASCADE
);  

-- --------------------------------------------------------

CREATE TABLE IF NOT EXISTS `Owner` (
  `password` varchar(100) NOT NULL default '',
  `account_name` varchar(100) NOT NULL default '',

  PRIMARY KEY  (password, account_name)

);   

诸如此类。

我认为您所做的错误是给我们提供了错误信息:-)您的SQL没有提到表
order1
,第14行与错误消息所述完全不同。在任何情况下,拥有一个由用户名和密码组成的主键只是。。。错。除了上面@paxdiablo所说的之外,作为一个粗略的猜测,您可以尝试放置
CREATE
语句后的code>s。