Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [MySql] Problema creazione chiave esterna con tabella popolata

    Come da titolo ho due tabelle

    produttori
    produttori_locazioni

    le due tabelle sono state create da un excel in cui allla colonna A del foglio produttori ho messo un numero incrementale.
    nella tabella b rapporto 1 a 1 o il campo id_produttori in cui ho copiato la colonna a del foglio produttori.

    Importate come csv da mysql workbench ho lo stesso identico numero di righe nelle due tabelle (come mi aspettavo)

    quando cerco di mettere la chiave esterna ho :

    codice:
    Le colonne sorgente e destinazione devono essere dello stesso tipo e ci deve essere un indice sulla colonna di destinazione e sui dati referenziati.
    Cannot add or update a child row: a foreign key constraint fails (`crm_open`.`#sql-5674_77`, CONSTRAINT `produttori_locazioni_ibfk_1` FOREIGN KEY (`id_produttori`) REFERENCES `produttori` (`id`))
    Entrambi i campi sono INT unsigned , il campo id della tabella produttori è primary il campo id_produttori è index, cosa posso controllare ?
    Ultima modifica di pippuccio76; 22-03-2024 a 15:23

  2. #2
    basta che una riga di produttori_locazioni abbia un id_produttori che non esiste nella tabella produttori e il gioco non funziona

  3. #3
    SE faccio :

    codice:
    select produttori.* , produttori_locazioni.*
    FROM produttori
    join produttori_locazioni on produttori_locazioni.id_produttori=produttori.id
    ho lo stesso identico numero di righe delle due tabelle

  4. #4
    usa questa per controllare, contare non basta
    codice:
    SELECT 
    	PL.*
    FROM 
    	produttori_locazioni PL
    LEFT JOIN
    	produttori P
    	ON PL.id_produttori=P.id
    WHERE
    	P.id IS NULL

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.