Cannot add foreign key constraint

1. Cannot add foreign key constraint

Andre Colin
andrecolin01

(usa Outra)

Enviado em 20/08/2013 - 16:37h

O erro do assunto é referente as duas tabelas abaixo. Procurei em diversos lugares mas dizem apenas q tem q ter primary key e nas tabelas tem. Alguem pode ajudar?


DROP DATABASE trab2;
CREATE DATABASE trab2;
USE trab2;

CREATE TABLE dados1 (
V0202 int,
V0203 int,
V0204 int,
V0205 int,
V0206 int,
V0207 int,
V0212 int,
V0216 int,
V0217 int,
codigo int,
foreign key (codigo) references V4105(cod1)
);

CREATE TABLE V4105 (
cod1 int,
cod2 int,
cod3 int,
cod4 int,
cod5 int,
cod6 int,
cod7 int,
cod8 int,
PRIMARY KEY (cod1)
);


  


2. Re: Cannot add foreign key constraint

Enzo de Brito Ferber
EnzoFerber

(usa FreeBSD)

Enviado em 26/08/2013 - 08:16h


mysql> use test;
Database changed
mysql> show tables;
Empty set (0.00 sec)

mysql> CREATE TABLE V4105 (
-> cod1 int,
-> cod2 int,
-> cod3 int,
-> cod4 int,
-> cod5 int,
-> cod6 int,
-> cod7 int,
-> cod8 int,
-> PRIMARY KEY (cod1)
-> );
Query OK, 0 rows affected (0.06 sec)

mysql> CREATE TABLE dados1 (
-> V0202 int,
-> V0203 int,
-> V0204 int,
-> V0205 int,
-> V0206 int,
-> V0207 int,
-> V0212 int,
-> V0216 int,
-> V0217 int,
-> codigo int,
-> foreign key (codigo) references V4105(cod1)
-> );
Query OK, 0 rows affected (0.12 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| dados1 |
| v4105 |
+----------------+
2 rows in set (0.00 sec)

mysql> explain v4105
-> ;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| cod1 | int(11) | NO | PRI | 0 | |
| cod2 | int(11) | YES | | NULL | |
| cod3 | int(11) | YES | | NULL | |
| cod4 | int(11) | YES | | NULL | |
| cod5 | int(11) | YES | | NULL | |
| cod6 | int(11) | YES | | NULL | |
| cod7 | int(11) | YES | | NULL | |
| cod8 | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
8 rows in set (0.06 sec)

mysql> explain dados1;
+--------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------+------+-----+---------+-------+
| V0202 | int(11) | YES | | NULL | |
| V0203 | int(11) | YES | | NULL | |
| V0204 | int(11) | YES | | NULL | |
| V0205 | int(11) | YES | | NULL | |
| V0206 | int(11) | YES | | NULL | |
| V0207 | int(11) | YES | | NULL | |
| V0212 | int(11) | YES | | NULL | |
| V0216 | int(11) | YES | | NULL | |
| V0217 | int(11) | YES | | NULL | |
| codigo | int(11) | YES | MUL | NULL | |
+--------+---------+------+-----+---------+-------+
10 rows in set (0.00 sec)

mysql>


Você tá criando a tabela 'dados1' antes de criar a 'v4105', né não?

Tudo o que fiz foi Ctrl+C - Ctrl+V e ambas foram criadas sem erros.
Se você tá fazendo exatamente como tá escrito aqui, o problema é a ordem de criação.

Qualquer coisa posta denovo,
Enzo Ferber
[]'s






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts