【发布时间】:2015-09-29 08:59:26
【问题描述】:
当我运行代码时,会出现此错误
Exception in thread "main" java.sql.SQLException: Can't create table 'Sensors_db.one' (errno: 121)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2624)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2127)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1362)
at sensordev.SensorDev.sensorPage(SensorDev.java:283)
at sensordev.SensorDev.main(SensorDev.java:893)
以下是我的代码
String type = "37";
String senName = "one";
String query;
switch(type){
case "37":{
query = "CREATE TABLE IF NOT EXISTS `"+ senName +"` ("
+ " `Name` VARCHAR(45) NOT NULL,"
+ " `State` VARCHAR(45) NOT NULL,"
+ " `Time` TIME NOT NULL,"
+ " PRIMARY KEY (`Time`, `State`),"
+ " INDEX `fk_dummy_1_idx` (`Name` ASC),"
+ " CONSTRAINT `fk_dummy_1`"
+ " FOREIGN KEY (`Name`)"
+ " REFERENCES `Sensors_db`.`sensorInfo` (`SName`)"
+ " ON DELETE NO ACTION"
+ " ON UPDATE NO ACTION);";
defaultStmt = conn.prepareStatement(query);
defaultStmt.execute();
'conn' 是我的数据库实例,'defaultStmt' 是 PreparedStatement
【问题讨论】:
-
您遇到了 SQL 错误,您可能会在异常堆栈跟踪中进一步了解更多信息。无论如何,我建议您直接在 ddbb 中尝试查询。希望对你有帮助
-
如果您看到“基本错误文本”和一些错误编号“(errno: 121)”,那么最好的下一步是用谷歌搜索该数字的含义
-
非常感谢....@Vovka
标签: java mysql jdbc sqlexception