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

    [MySql]Problema collation in Join

    Salve in una join tra 2 tabelle mi viene fuori questo errore :

    codice:
    Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation '='
    Le due tabelle hanno però la stessa collation :

    codice:
    DROP TABLE IF EXISTS `articoli`;
    CREATE TABLE `articoli` (
      `id` int NOT NULL AUTO_INCREMENT,
      `id_famiglie` int NOT NULL,
      `codice_originale` varchar(13) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'codice_fornitore',
      `codice_interno` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'codice_stilauto',
      `codice_originale_toyota` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
      `descrizione` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
      `prezzo_netto_acquisto` decimal(10,2) NOT NULL,
      `prezzo_listino` decimal(10,2) NOT NULL,
      `ubicazione` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `numero_pezzi` int NOT NULL DEFAULT '1',
      `note_etichetta` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `marca` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `lunghezza_algoritmo` tinyint(1) NOT NULL DEFAULT '6',
      `caratteri_aggiuntivi` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
      `note` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
      `created_at` datetime NOT NULL,
      `updated_at` datetime DEFAULT NULL,
      `deleted_at` datetime DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `id_famiglie` (`id_famiglie`),
      CONSTRAINT `articoli_ibfk_1` FOREIGN KEY (`id_famiglie`) REFERENCES `famiglie` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    
    
    DROP TABLE IF EXISTS `codice_originale`;
    CREATE TABLE `codice_originale` (
      `id` int NOT NULL AUTO_INCREMENT,
      `id_articoli` int NOT NULL,
      `codice_originale` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL,
      `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
      `updated_at` datetime DEFAULT NULL,
      `deleted_at` datetime DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `id_articoli` (`id_articoli`),
      CONSTRAINT `codice_originale_ibfk_1` FOREIGN KEY (`id_articoli`) REFERENCES `articoli` (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
    Cosa posso fare ?

  2. #2
    ma vai a specificare la collation campo campo? non lo puoi fare su tutta la tabella, o addirittura sul db?

  3. #3

  4. #4
    Quote Originariamente inviata da optime Visualizza il messaggio
    ma vai a specificare la collation campo campo? non lo puoi fare su tutta la tabella, o addirittura sul db?
    no imposto solo la tabella adminer lo assegna in automatico se non la specifichi diversa

  5. #5
    quindi se imposti la tabella perché poi lo rifai campo-campo? giusto per capire

  6. #6
    Le tabelle avevano entrambi la stessa collaction anche con il comando del link , ho cambiato la collaction del db mettendo la stessa per tutto e sembra andare, grazie

  7. #7
    Quote Originariamente inviata da optime Visualizza il messaggio
    quindi se imposti la tabella perché poi lo rifai campo-campo? giusto per capire
    Ti ho detto che non lo faccio , se non imposto nessuna collaction per il campo eredita quello della tabella in automatico

  8. #8
    Quote Originariamente inviata da pippuccio76 Visualizza il messaggio
    ho cambiato la collaction del db mettendo la stessa per tutto e sembra andare, grazie
    optime!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.