私はXAMPP 5.6.19-0をMySQLデータベースサーバーとして使用し、MySQL Workbench(Mac OS 10.11.3)経由で管理しています。私は外部キーで、いくつかのテーブルを作成しようとしている、とイムは、このエラーを取得:MySQLエラーコード1005/errno:150
Error Code: 1005. Can't create table
imobiliaria24h
.proprietario
(errno: 150 "Foreign key constraint is incorrectly formed")
は、これは私が使用しようとしているコードです:
CREATE TABLE IF NOT EXISTS PROPRIETARIO (
NOME VARCHAR(30) NOT NULL,
CPF INT NOT NULL,
TELEFONE INT NOT NULL,
CORRETOR_CPF INT NOT NULL,
PRIMARY KEY (CPF),
FOREIGN KEY (CORRETOR_CPF) REFERENCES CORRETOR(CPF)
)ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS IMOVEL(
ENDERECO VARCHAR(100) NOT NULL,
TIPO ENUM('ALUGUEL', 'VENDA'),
INQUILINO_CPF INT,
PROPRIETARIO_CPF INT,
VALOR_ALUGUEL_PRECOVENDA INT NOT NULL,
NUM_QUARTOS INT NOT NULL,
METRAGEM INT NOT NULL,
NUM_BANHEIROS INT NOT NULL,
VALOR_CONDOMINIO INT NOT NULL,
IDADE INT NOT NULL,
HORA_REGISTRO TIME NOT NULL,
PRIMARY KEY(ENDERECO),
FOREIGN KEY (INQUILINO_CPF) REFERENCES INQUILINO(CPF),
FOREIGN KEY (PROPRIETARIO_CPF) REFERENCES PROPRIETARIO(CPF)
)ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS INQUILINO(
NOME VARCHAR(30) NOT NULL,
CPF INT NOT NULL,
TELEFONE INT NOT NULL,
FIADOR BOOLEAN NOT NULL,
INADIMPLENCIA INT NOT NULL,
CORRETOR_CPF INT NOT NULL,
PRIMARY KEY (CPF),
FOREIGN KEY (CORRETOR_CPF) REFERENCES CORRETOR(CPF)
)ENGINE=InnoDB;
CREATE TABLE IF NOT EXISTS CORRETOR(
NOME VARCHAR(30) NOT NULL,
CPF INT NOT NULL,
TELEFONE INT NOT NULL,
ANOS_CASA SMALLINT NOT NULL,
TRABALHA_FDS BOOLEAN NOT NULL,
TRABALHA_NOITE BOOLEAN NOT NULL,
PRIMARY KEY (CPF)
)ENGINE=InnoDB;
興味深いのは、つまり、テーブルを別々に作成すると、たとえばPROPRIETARIOとCORRETORの2つ目のINQUILINO、最後にIMOVELが作成され、このようにしてすべてのテーブルが作成されます。私はなぜそれらがすべて "単一のコマンド"で一緒に作成されているエラーを取得しているのか分からない。
ビンゴ!出来た。どのように私は今気分がいい!ちょうどMySQLを使っています。しかし、助けてくれてありがとう! –
問題ありません。数年前からこのようなことをしてきた人々でさえ、後見のなかで明白に見える間違いをしています。それについて悪いと感じないでください、それはすべて学習プロセスの一部です。がんばろう! –