Mysql
 sql >> Database >  >> RDS >> Mysql

Perché vedo COLLATION 'xxx' non è valido per CHARACTER SET 'yyy'

  1. Perché avere una clausola COLLATE quando si confronta un BIGINT rispetto ai numeri letterali? Rimuovi la clausola COLLATE nell'istruzione UPDATE. -- Questa è la soluzione principale, secondo i commenti di OP.

  2. Il codice è all'interno di una routine memorizzata che è stata compilata con latin1? Esegui SHOW CREATE PROCEDURE (o FUNCTION) per vedere se fosse così. In tal caso, rilascialo e ricrealo con utf8mb4 in vigore.

  3. È rischioso modificare il filesystem_set_caratteri e il server_set_caratteri. Cambiali di nuovo.