这个MySQL语法有什么问题-错误1064。。?
我正试图为大学建立一个数据库,我遇到了一个问题。 当我执行文件(cmd中的源文件名)时,出现以下错误:这个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` (
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。