【发布时间】:2012-03-20 10:36:31
【问题描述】:
尝试使用外键创建一些新表,但我遇到了问题,这是我收到的代码和错误,我认为它有一些问题 用我的外键做什么?
#1064 - 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 '(`CustomerID`),
) ENGINE=InnoDB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1' at line 10
DROP TABLE IF EXISTS `Customer`;
CREATE TABLE `Customer` (
`CustomerID` INT UNSIGNED AUTO_INCREMENT,
`Customer_Number` VARCHAR(100),
`Customer_Name` VARCHAR(100),
`Website` VARCHAR(255),
`Logo` VARCHAR(100),
PRIMARY KEY(`CustomerID`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
DROP TABLE IF EXISTS `Reports`;
CREATE TABLE `Reports` (
`ReportsID` INT UNSIGNED AUTO_INCREMENT,
`Role` VARCHAR(70),
`Region` VARCHAR(70),
`Inpection_Type` VARCHAR(70),
`CustomerID` INT UNSIGNED,
`Report_Date` DATE NOT NULL DEFAULT '0000-00-00',
`Order_Date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Customer_Name` VARCHAR(100),
`Customer_Division` VARCHAR(70),
`Memo` VARCHAR(255),
`Billing_Key` VARCHAR(70),
PRIMARY KEY(`ReportsID`),
FOREIGN KEY (`CustomerID`) REFERENCES Customer(`CustomerID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
DROP TABLE IF EXISTS `CustomerContact`;
CREATE TABLE `CustomerContact` (
`ContactID` INT UNSIGNED AUTO_INCREMENT,
`CustomerID` INT UNSIGNED,
`Division` VARCHAR(100),
`Contact` VARCHAR(100),
`Address` VARCHAR(255),
`Phone` VARCHAR(100),
`Fax` VARCHAR(100),
`Email` VARCHAR(100),
`Mobile` VARCHAR(100),
PRIMARY KEY(`ContactID`),
FOREIGN KEY (`CustomerID) REFERENCES Customer(`CustomerID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
【问题讨论】:
-
Logo varchar()和primary key之间缺少逗号? -
@biziclop 修复后效果一样
标签: mysql datatable foreign-keys foreign-key-relationship