0

コードを使用して mysql データベースに 2 つのテーブルを作成しようとしています

これは私の作成スクリプトです

CREATE DATABASE if not exists feedback;

CREATE TABLE IF NOT EXISTS Authorizations(
    authDesc CHAR(50),
    id MEDIUMINT NOT NULL AUTO_INCREMENT,
    authLevel INT NOT NULL DEFAULT 0,

    PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS Users(
    lastName CHAR(50) NOT NULL,
    userID MEDIUMINT NOT NULL,
    phone CHAR(15),
    email CHAR(50),
    address CHAR(100),
    authLevel INT NOT NULL DEFAULT 0,

    FOREIGN KEY(authLevel) REFERENCES Authorizations (authLevel),
    login CHAR(30) NOT NULL,
    firstName CHAR(50) NOT NULL,

    PRIMARY KEY (login),password CHAR(30) NOT NULL
);

それを実行しようとすると、このエラーが発生します

java.sql.SQLException: Can't create table 'feedback.users' (errno: 150)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4120)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4052)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2809)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1811)
    at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1725)
    at com.database.Database.createDatabase(Database.java:45)
    at com.database.Main.main(Main.java:6)

行 45 には、私のコードに create table users 行があります

私のデータベース エンジンは mysql 経由の InnoDB です

私は何を間違っていますか?

4

2 に答える 2