【发布时间】:2018-01-04 17:18:35
【问题描述】:
我正在使用 Java 应用程序访问我的 MySQL 数据库,并且绝对一切正常。
当我尝试运行以下命令时会出现问题:
Statement stmt = conn.createStatement();
stmtSql = "SET FOREIGN_KEY_CHECKS=0; \n replace into database.user (EMail,Nickname,WebPassword,registerdOn,ProfilePic,usertype) values ('" + email + "','" + user + "','" + pass+ "','" +joined+ "','" +profPic+ "','" +type + "');\n SET FOREIGN_KEY_CHECKS=1;";
stmt.executeQuery(stmtSql);
我也打印了这个,如果我直接在 MySQL 中运行它,它就可以很好地工作
SET FOREIGN_KEY_CHECKS=0;
replace into animelicious.user (EMail,Nickname,WebPassword,registerdOn,ProfilePic,usertype) values ('somemail@hotmail.com','someperson','justapw','2017-11-01','url','0');
SET FOREIGN_KEY_CHECKS=1;
我知道 foreign_key 检查设置是一个肮脏的解决方法,但据我所知它应该可以工作。
一些更有用的信息可能是: 是的,用户已经存在。 只有电子邮件和昵称是唯一的,只有昵称是外键。 只有电子邮件被替换,该列的其余部分保持不变。
【问题讨论】: