mysql - 如何解决无法添加外键约束的错误

标签 mysql sql select foreign-keys create-table

您好,我在网站 w3school 中测试了代码外键,没有错误添加外键 但我编码这个数据库银行返回我 erroe 1215 或不添加外键 我在 php 中测试了我的管理员和工作台并返回错误 1215

    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`)
       );

最佳答案

REFERENCESTableName 之间添加空格。

试试这个:

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`)
);

关于mysql - 如何解决无法添加外键约束的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34396904/

相关文章:

java - Hibernate 生成的 DDL 中的无效语法错误 "type= MyISAM"

PHP、Stripe API 不会更新 MYSQL

sql - 如何从 Oracle 检索下 n 个未锁定的行?

mysql - 计算两个字段之和之间的差异

php mysql 当父订单的值 = 1 时选择订单详细信息

PHP + MySQL - 随机列出MySQL表中的所有数据

PHP,MySQL 查询不工作

sql - 执行包含动态 SQL Sybase 的存储过程

sql - 在 Where 子句中使用 Case 语句(带专栏)

c# - 这个 LINQ 查询什么时候进入数据库?