Java 外键错误

Java 外键错误,java,mysql,jdbc,mysql-error-1005,Java,Mysql,Jdbc,Mysql Error 1005,我在Java程序中创建mySQL表时遇到问题。我经常得到无法创建表。。。号码:150 这是我的密码: String URL="jdbc:mysql://192.168.1.128:3306"; Connection con=(Connection) DriverManager.getConnection(URL,user,pass); Statement stmt=(Statement) con.createStatement(Resul

我在Java程序中创建mySQL表时遇到问题。我经常得到无法创建表。。。号码:150

这是我的密码:

     String URL="jdbc:mysql://192.168.1.128:3306";
            Connection con=(Connection) DriverManager.getConnection(URL,user,pass);
            Statement stmt=(Statement) con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            Statement stmt1=(Statement) con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            String mySQL_new_table=("CREATE TABLE IF NOT EXISTS dbtest.T_AJPES_TR " + "(" + "row_count INT PRIMARY KEY AUTO_INCREMENT,"
                + "rn CHAR(15),sSpre CHAR(5),reg CHAR(5),eno VARCHAR(10),davcna VARCHAR(15),Ime VARCHAR(75),Priimek VARCHAR(75),LOG_ID INT,INDEX L_ID (LOG_ID),FOREIGN KEY(LOG_ID) references T_AJPES_TR_LOG(ID_LOG) ON DELETE CASCADE ON UPDATE CASCADE) ENGINE = INNODB;");
            String mySQL_log = ("CREATE TABLE IF NOT EXISTS dbtest.T_AJPES_TR_LOG" + "(ID_LOG INT PRIMARY KEY AUTO_INCREMENT, Date_import VARCHAR(45),File_import VARCHAR(75)) ENGINE = INNODB;");
            stmt.executeUpdate(mySQL_new_table);
            stmt1.executeUpdate(mySQL_log);
            ResultSet uprs=stmt.executeQuery("SELECT * FROM dbtest.T_AJPES_TR");
            ResultSet uprs1=stmt1.executeQuery("SELECT * FROM dbtest.T_AJPES_TR_LOG");

我在谷歌上搜索了很多创建外键的教程,但仍然有问题。那么我做错了什么呢?

您可能遇到了外键约束问题,有关详细信息,请参阅


首先要检查的是您的日志ID引用到T_AJPES_TR_LOG(ID_LOG)是否正确

好的,我现在发现了问题所在。我必须先做日志表,然后再做日志表。那么现在TR_AJPES_TR表会自动更新吗?或者我必须在主程序中添加updateInt()?对,它打破了FK约束,因为另一个表不在那里,这是有道理的。您所说的自动更新是什么意思?您试图实现什么?我希望这个外键与其他导入的数据一起写入第二个表中。它是自动写入第二个表还是需要添加其他语法?我可以添加我的全部代码吗?我看到我之前的评论写得很不清楚。这是我想做的。在TR_AJPES_TR_LOG中,我想保存ID_LOG、日期和文件名。此表包含有关在TR_AJPES_TR中导入文件数据的日期和来源的信息。在TR_AJPES_TR中,我只想从TR_AJPES_TR_日志文件中写入ID_日志,因此我将其声明为外键。所以我想知道如何在TR_AJPES_TR表中写入外键?mySQL是自动执行的还是必须检索外键并使用updateInt()写入?