quand je lance le code de cette erreur suitException SQL: ne peut pas créer la table
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)
suivant est mon mon code
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' est mon instance de base de données et 'defaultStmt' est un PreparedStatement
Vous rencontrez une erreur SQL, vous pourriez obtenir plus d'informations plus bas dans votre stacktrace d'exception. Quoi qu'il en soit, je vous suggère d'essayer votre requête directement dans votre ddbb. Espérons que cela aide – lrnzcig
si vous voyez "texte d'erreur de base" et un certain nombre d'erreur "(errno: 121)", puis la meilleure étape suivante est de google ce que ce nombre signifie – Vovka
Merci beaucoup .... @Vovka –