私のJava WebアプリケーションのDBエンジンをMyIsamからinnoDBに変更しました。私はMySql DBを使用しています。何らかの理由で、私は今バッチで追加された私のdbテーブルの作成にエラーを取得します。DBエンジンをMyIsamからinnoDBに変更するときのエラー
エラーはjava.sql.BatchUpdateException
です。
これらの2つのDBエンジンを変更した場合の影響は何ですか?また、私が犯したものを修正するにはどうすればよいですか?
EDIT
完全なスタックトレース:
java.sql.SQLException: Can't create table 'schedule.course2user' (errno: 150)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3562)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3494)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1960)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2114)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2690)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1648)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1567)
at database.DBCreator.execList(DBCreator.java:203)
at database.DBCreator.createDatabase(DBCreator.java:215)
at database.DBCreator.main(DBCreator.java:248)
のMyISAMとInnoDBのでの作業が、働いていないDBコマンドを:
CREATE TABLE IF NOT EXISTS `schedule`.`course` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NOT NULL UNIQUE,
`description` BLOB ,
`credits` TINYINT(1) DEFAULT '0' ,
`capacity` INT DEFAULT '0' ,
`isRemoved` TINYINT(1) NULL DEFAULT '0' ,
`groupId` INT NULL DEFAULT '0' ,
`creatorId` INT UNSIGNED NOT NULL ,
PRIMARY KEY (`id`) ,
INDEX `fk_creator` (`creatorId` ASC) ,
CONSTRAINT `fk_creator` FOREIGN KEY (`creatorId`)REFERENCES `schedule`.`course` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION)
ENGINE = innoDB DEFAULT CHARACTER SET = utf8;
完全なスタックトレースを提供する必要があります。 –
テーブル定義が表示されていないと、何が間違っているかわかりません。 – OrangeDog
@OrangeDog私はそれを更新しました。 – Nayish