java - 外键约束的形成不正确 - java-mysql

标签 java mysql

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

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

最佳答案

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

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 看起来应该是这个表的主键。
  • 外键引用应使用 CLIENTES 上的 ID。
  • 您不需要在 CLIENTES 上使用 CUENTA
  • DOUBLE(14, 2) 不是正确的数据类型。您需要 DECIMAL(14, 2)/NUMERIC(14, 2)

关于java - 外键约束的形成不正确 - java-mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46126566/

相关文章:

mysql - 如何插入限制为 3 的数据库

MySql 查询以加入表之间不同存储的 uuid

mysql - 物化 View 的数据库从 MariaDB 迁移到 PostgreSQL

php - 从 mysql 表中的每一行中删除重复单词的最佳方法

java - 在 Java 中从 MySQL 获取不同的行

java - 为什么我们要在一些递归算法中复制一个ArrayList?

java - csv 到 java 中超过 65536 行的 xls

mysql - 创建选择字段时出错

java - 从另一个 JFrame 执行 JFrame

java - 如果我的表中有数据,为什么 Hibernate 条件返回空列表?