Mysql 如何修复无法添加外键约束的错误
您好,我在站点w3school中测试了代码外键,没有错误添加外键 但我编码这个数据库银行为我返回错误1215或不添加foregin键 我在php中测试了我的管理和工作台,返回错误1215Mysql 如何修复无法添加外键约束的错误,mysql,sql,select,foreign-keys,create-table,Mysql,Sql,Select,Foreign Keys,Create Table,您好,我在站点w3school中测试了代码外键,没有错误添加外键 但我编码这个数据库银行为我返回错误1215或不添加foregin键 我在php中测试了我的管理和工作台,返回错误1215 create database `bank`; create table `bank`.`customer`( `cname` char(10)not null , `ccity` char(10)not null , `cstreet` char(10)not nu
create database `bank`;
create table `bank`.`customer`(
`cname` char(10)not null ,
`ccity` char(10)not null ,
`cstreet` char(10)not null,
constraint `customer_pk` PRIMARY KEY(`cname`)
);
create table `bank`.`branch`(
`bname` char(10)not null ,
`bcity` char(10) not null,
constraint `branch_pk` PRIMARY KEY(`bname`)
);
create table `bank`.`deposit`(
`cname` char(10) ,
`bname` char(10) ,
`ano` char(10)not null,
`balance` integer,
constraint `deposit_pk` primary KEY(`ano`),
constraint `deposit_fk_1` foreign KEY(`cname`) references`customer`(`cname`),
constraint `deposit_fk_2` foreign key(`bname`) references`branch`(`bname`)
);
create table `bank`.`borrow`(
`cname` char(10),
`bname` char(10),
`lno` integer not null,
`amount` double,
constraint `borrow_pk` primary key (`lno`),
constraint `borrow_fk_1` foreign KEY(`cname`)references`customer`(`cname`),
constraint `borrow_fk_2` foreign KEY(`bname`) references`branch`(`bname`)
);
在引用和表名之间添加空格 试试这个:
CREATE DATABASE `bank`;
CREATE TABLE `bank`.`customer`
(
`cname` CHAR(10) NOT NULL,
`ccity` CHAR(10) NOT NULL,
`cstreet` CHAR(10) NOT NULL,
CONSTRAINT `customer_pk` PRIMARY KEY(`cname`)
);
CREATE TABLE `bank`.`branch`
(
`bname` CHAR(10) NOT NULL,
`bcity` CHAR(10) NOT NULL,
CONSTRAINT `branch_pk` PRIMARY KEY(`bname`)
);
CREATE TABLE `bank`.`deposit`
(
`cname` CHAR(10),
`bname` CHAR(10),
`ano` CHAR(10) NOT NULL,
`balance` INTEGER,
CONSTRAINT `deposit_pk` PRIMARY KEY(`ano`),
CONSTRAINT `deposit_fk_1` FOREIGN KEY(`cname`) REFERENCES `customer`(`cname`),
CONSTRAINT `deposit_fk_2` FOREIGN KEY(`bname`) REFERENCES `branch`(`bname`)
);
CREATE TABLE `bank`.`borrow`
(
`cname` CHAR(10),
`bname` CHAR(10),
`lno` INTEGER NOT NULL,
`amount` DOUBLE,
CONSTRAINT `borrow_pk` PRIMARY KEY(`lno`),
CONSTRAINT `borrow_fk_1` FOREIGN KEY(`cname`) REFERENCES `customer`(`cname`),
CONSTRAINT `borrow_fk_2` FOREIGN KEY(`bname`) REFERENCES `branch`(`bname`)
);
在引用和表名之间添加空格 试试这个:
CREATE DATABASE `bank`;
CREATE TABLE `bank`.`customer`
(
`cname` CHAR(10) NOT NULL,
`ccity` CHAR(10) NOT NULL,
`cstreet` CHAR(10) NOT NULL,
CONSTRAINT `customer_pk` PRIMARY KEY(`cname`)
);
CREATE TABLE `bank`.`branch`
(
`bname` CHAR(10) NOT NULL,
`bcity` CHAR(10) NOT NULL,
CONSTRAINT `branch_pk` PRIMARY KEY(`bname`)
);
CREATE TABLE `bank`.`deposit`
(
`cname` CHAR(10),
`bname` CHAR(10),
`ano` CHAR(10) NOT NULL,
`balance` INTEGER,
CONSTRAINT `deposit_pk` PRIMARY KEY(`ano`),
CONSTRAINT `deposit_fk_1` FOREIGN KEY(`cname`) REFERENCES `customer`(`cname`),
CONSTRAINT `deposit_fk_2` FOREIGN KEY(`bname`) REFERENCES `branch`(`bname`)
);
CREATE TABLE `bank`.`borrow`
(
`cname` CHAR(10),
`bname` CHAR(10),
`lno` INTEGER NOT NULL,
`amount` DOUBLE,
CONSTRAINT `borrow_pk` PRIMARY KEY(`lno`),
CONSTRAINT `borrow_fk_1` FOREIGN KEY(`cname`) REFERENCES `customer`(`cname`),
CONSTRAINT `borrow_fk_2` FOREIGN KEY(`bname`) REFERENCES `branch`(`bname`)
);
@MSK要转换为大写的代码。在上面的代码中,所有的关键字都是大写的,那么你想要什么呢???@MSK你所说的我是什么意思和顺序??
cname
char(10)not null,(convert)cname
char(10)not null,convert中的大写字母和空格是多少我正在使用一个名为SQLYog(MySQL的GUI工具)的软件,它将给我代码转换的灵活性,所以你可以用任何软件来做,或者manually@MSK不客气。。。您可以从任何答案中得到所需的答案,然后接受该答案。@MSK要转换为大写的代码。在上面的代码中,所有的关键字都是大写的,那么你想要什么呢???@MSK你所说的我是什么意思和顺序??cname
char(10)not null,(convert)cname
char(10)not null,convert中的大写字母和空格是多少我正在使用一个名为SQLYog(MySQL的GUI工具)的软件,它将给我代码转换的灵活性,所以你可以用任何软件来做,或者manually@MSK不客气。。。你从任何答案中得到你想要的答案,然后接受这个答案。