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/