外键约束不正确 - java-mysql [英] Foreign key constraint is incorrectly formed - java-mysql

查看:281
本文介绍了外键约束不正确 - java-mysql的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

什么是mysql问题?
我不知道错误是什么,因为我之前没有使用过外键

what is the mysql problem ?? I do not know what the error is since I had not used foreign keys before

String clientes = "CREATE TABLE clientes("+
                    "ID INTEGER NOT NULL AUTO_INCREMENT,"+
                    "CUENTA INTEGER,"+
                    "NOMBRE VARCHAR(255),"+
                    "EDAD INTEGER,"+
                    "ADICIONAL INTEGER,"+
                    "DOMICILIO VARCHAR(255),"+
                    "PRIMARY KEY(ID))";

        String cuenta = "CREATE TABLE cuenta("+
                "CUENTA INTEGER,"+
                "SALDOAFAVOR DOUBLE(14,2),"+
                "SALDOENCONTRA DOUBLE(14,2),"+
                "FECHACORTE DATE,"+
                "LIMITECREDITO DOUBLE(14,2),"+
                "FOREIGN KEY(CUENTA) REFERENCES clientes(CUENTA))";


推荐答案

正确的引用和定义将使用主键:

The correct reference and definition would use the primary key:

CREATE TABLE cuenta (
    CUENTA INTEGER AUTO_INCREMENT PRIMARY KEY,
    CLIENTE_ID INT,
    SALDOAFAVOR NUMERIC(14, 2),
    SALDOENCONTRA NUMERIC(14, 2),
    FECHACORTE DATE,
    LIMITECREDITO NUMERIC(14,2),
    FOREIGN KEY(CLIENT_ID) REFERENCES clientes(ID)
);

注意:


  • CUENTA 好像应该是这个表的主键。

  • 外键引用应该使用id 客户

  • 您不需要 CUENTA >客户

  • DOUBLE(14,2)不是正确的数据类型。你想要 DECIMAL(14,2) / NUMERIC(14,2)

  • CUENTA seems like it should be the primary key of this table.
  • The foreign key reference should use the id on CLIENTES.
  • You don't need CUENTA on CLIENTES.
  • DOUBLE(14, 2) is not the right data type. You want DECIMAL(14, 2)/NUMERIC(14, 2).

这篇关于外键约束不正确 - java-mysql的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆