MySQL错误1064(42000)-即使使用反勾号
我肯定错过了一些明显的东西,但仍然 当我尝试运行以下程序时,出现MySQL错误1064(42000):MySQL错误1064(42000)-即使使用反勾号,mysql,foreign-keys,Mysql,Foreign Keys,我肯定错过了一些明显的东西,但仍然 当我尝试运行以下程序时,出现MySQL错误1064(42000): CREATE TABLE `mgr_user` ( `id` INT NOT NULL AUTO_INCREMENT, `customer_id` INT NOT NULL, `username` VARCHAR(25), `password` VARCHAR(100), INDEX(`customer_id`), FOREIGN KEY `c
CREATE TABLE `mgr_user`
(
`id` INT NOT NULL AUTO_INCREMENT,
`customer_id` INT NOT NULL,
`username` VARCHAR(25),
`password` VARCHAR(100),
INDEX(`customer_id`),
FOREIGN KEY `customer_id` REFERENCES `customer`(`id`) ON UPDATE CASCADE ON DELETE RESTRICT
);
您需要用括号将外键名括起来。此外,您的自动列必须是一个键。见下文
CREATE TABLE `mgr_user`
(
`id` INT NOT NULL AUTO_INCREMENT,
`customer_id` INT NOT NULL,
`username` VARCHAR(25),
`password` VARCHAR(100),
INDEX(`customer_id`),
UNIQUE KEY (`id`), -- <- Auto column is should be a key
FOREIGN KEY (`customer_id`) REFERENCES `customer`(`id`) ON UPDATE CASCADE ON DELETE RESTRICT
);
创建表`mgr\u用户`
(
`id`INT非空自动增量,
`客户_id`INT不为空,
`用户名'VARCHAR(25),
`密码'VARCHAR(100),
索引(`customer\u id`),
唯一键(`id`),--您需要用括号括住外键名。。此外,自动列必须是键。。请参见下面的内容
CREATE TABLE `mgr_user`
(
`id` INT NOT NULL AUTO_INCREMENT,
`customer_id` INT NOT NULL,
`username` VARCHAR(25),
`password` VARCHAR(100),
INDEX(`customer_id`),
UNIQUE KEY (`id`), -- <- Auto column is should be a key
FOREIGN KEY (`customer_id`) REFERENCES `customer`(`id`) ON UPDATE CASCADE ON DELETE RESTRICT
);
创建表`mgr\u用户`
(
`id`INT非空自动增量,
`客户_id`INT不为空,
`用户名'VARCHAR(25),
`密码'VARCHAR(100),
索引(`customer\u id`),
唯一键(`id`),这是唯一的其他create:create TABLE customer(id INT NOT NULL AUTO_INCREMENT,name VARCHAR(25),PRIMARY KEY(id));请显示错误消息,这通常有助于揭示语法错误的位置。这是唯一的其他create:create TABLE customer(id INT NOT NULL AUTO_INCREMENT,name VARCHAR(25),主键(id));请显示错误消息,这通常有助于揭示语法错误的位置。