MySQL usando a mesma chave estrangeira para duas colunas de tabela diferentes

mimi

Achei este tópico semelhante às minhas consultas Como vincular chave estrangeira com nome diferente Mas, infelizmente, com a resposta, meu problema não foi resolvido. Como no meu exemplo de tabela, ele não cria nenhuma chave primária. Todas as chaves estrangeiras apenas.

Aqui está o código:

CREATE TABLE ref_data(
user_id INT(11) NOT NULL,
ref_id INT(11) NOT NULL,
ref_name VARCHAR(30) NOT NULL,
ref_date datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT FK_user_id FOREIGN KEY(user_id) REFERENCES client (user_id),
CONSTRAINT FK_ref_id FOREIGN KEY(ref_id) REFERENCES client (user_id),
CONSTRAINT FK_ref_name FOREIGN KEY(ref_name) REFERENCES client (firstname)
);

Isso me dá:

errno: 150 "Restrição de chave estrangeira formada incorretamente"

Aqui estou usando user_id duas vezes com 1st como "user_id" 2nd como "ref_id". Também usando o primeiro nome como "ref_name".

mesa do cliente:

   CREATE TABLE client (
   `user_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `username` VARCHAR(30) NOT NULL UNIQUE KEY,
  `email` VARCHAR(50) NOT NULL UNIQUE KEY,
  `firstname` VARCHAR(30) NOT NULL,
   `lastname` VARCHAR(30) NOT NULL,
  `password` CHAR(128) NOT NULL
  );
Paul T.

Ok, ao tentar criar a tabela ref_data, após o erro da chave estrangeira, vejo o seguinte:

ÚLTIMO ERRO DE CHAVE ESTRANGEIRA

------------------------ 2017-07-13 01:07:00 37ec Erro na restrição de chave estrangeira da tabela ref_data:

FOREIGN KEY (ref_name) REFERENCES client (firstname)):

Não é possível encontrar um índice na tabela referenciada onde as colunas referenciadas aparecem como as primeiras colunas, ou os tipos de coluna na tabela e a tabela referenciada não correspondem à restrição. Observe que o tipo de armazenamento interno de ENUM e SET mudou nas tabelas criadas com> = InnoDB-4.1.12, e tais colunas em tabelas antigas não podem ser referenciadas por tais colunas em novas tabelas. Consulte http://dev.mysql.com/doc/refman/5.6/en/innodb-foreign-key-constraints.html para a definição correta da chave estrangeira. Criar mesa ' test. ref_data'com restrição de chave estrangeira falhou. Não há índice na tabela referenciada onde as colunas referenciadas aparecem como as primeiras colunas perto de 'FOREIGN KEY (ref_name) REFERENCES client (firstname))'.

O que esse erro está basicamente dizendo: (em negrito)

Não há índice no 'primeiro nome' para a tabela 'cliente' (a parte após a cláusula REFERENCES da FOREIGN KEY

Mas é uma solução simples. Execute este SQL na tabela do cliente :

ALTER TABLE `client` ADD INDEX(`firstname`);

... e então execute a tabela ref_data SQL novamente.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

MySQL altera duas colunas para a mesma chave estrangeira

Duas colunas na mesma tabela e mesma chave estrangeira

Chave estrangeira MYSQL para a mesma tabela?

INNER JOIN para duas colunas da mesma chave estrangeira

Codeigniter: Como buscar dados de colunas diferentes de uma tabela estrangeira usando o id de chave estrangeira?

Conectando duas tabelas usando a terceira tabela com chave estrangeira no mySQL

Como criar uma entidade usando o Hibernate para criar uma tabela com duas colunas de chave estrangeira: Nenhum identificador especificado para a entidade:

Como fazer as duas colunas muito semelhantes de duas trables diferentes aparecerem na mesma chave primária na tabela principal

Crie duas referências de chave estrangeira para a mesma tabela com índice composto único para uma delas

Crie duas referências de chave estrangeira para a mesma tabela com índice composto único para uma delas

Preciso de ajuda para adicionar duas linhas diferentes (com as mesmas colunas) à mesma tabela de dados

Referência de chave estrangeira para duas colunas

Duas instruções MYSQL com nomes de colunas diferentes, mas da mesma tabela

Duas instruções MYSQL com nomes de colunas diferentes, mas da mesma tabela

Como obter os valores de duas colunas de chave estrangeira quando correspondem à mesma chave?

O MySQL não adicionará chave estrangeira mais de uma chave estrangeira à mesma tabela

Como usar um divisor de datas para filtrar duas visualizações de duas colunas diferentes na mesma tabela no PowerBI

Como usar um divisor de datas para filtrar duas visualizações de duas colunas diferentes na mesma tabela no PowerBI

selecionar dados de duas colunas diferentes em uma tabela que apontam para a mesma coluna em outra tabela

Duas chaves primárias na mesma tabela e chave estrangeira

Relacionamentos com a mesma chave estrangeira para a mesma tabela Laravel 5

Como selecionar uma linha de tabela usando chave estrangeira no MySQL?

Como selecionar uma linha de tabela usando chave estrangeira no MySQL?

Restrição de chave estrangeira para duas tabelas no Mysql

MYSQL - Como posso subtrair duas colunas em duas linhas diferentes, na mesma tabela?

problemas para criar tabela usando chave estrangeira

Erro 150 do mysql por fazer referência à mesma coluna de chave estrangeira em duas tabelas

Junte-se à mesma tabela duas vezes para contar em colunas diferentes

Impedir múltiplas referências de chave estrangeira para a mesma linha na tabela primária

TOP lista

  1. 1

    Problema de escalada que requer programação dinâmica

  2. 2

    Argumento de linha de comando adicionando um parâmetro extra

  3. 3

    Como usar o foco no RichText no flutter?

  4. 4

    Como enviar e-mail para vários destinatários com python?

  5. 5

    AWS Glue Crawler creates a table for every file

  6. 6

    Adicionar campos de texto dinâmicos por meio da seleção suspensa de componentes?

  7. 7

    React: update state with form data onChange using the spread operator

  8. 8

    Como validar número de telefone na laravel?

  9. 9

    ¿Cómo obtener las fechas alternativas entre dos fechas en la misma tabla e insertar esas fechas en una tabla temporal?

  10. 10

    Usando Retrofit, quero acessar o userId a partir da resposta JSON (um valor de uma matriz dentro do objeto)

  11. 11

    UnsatisfiedDependencyException: Error creating bean with name 'securityConfig'

  12. 12

    Comportamento complexo do bootstrap Collapse

  13. 13

    Multilinha EditText com "botão de próxima visualização" em vez de "botão de nova linha"

  14. 14

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  15. 15

    Erro de "recurso de fonte não encontrado" do Android

  16. 16

    Aviso do ponto de interrupção do código do Visual Studio: o código-fonte é diferente da versão original

  17. 17

    O campo requer um bean do tipo que não pôde ser encontrado, considere definir um bean do tipo em sua configuração

  18. 18

    Como posso colar várias linhas do Excel para um DataGridView em C #?

  19. 19

    volatile for signal handler and multi-threading

  20. 20

    Javascript <input> não funciona bem com o IE 11

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo