Visualizzazione risultati 1 fino 8 di 8

Discussione: Warning: #1287 'VALUES function' is deprecated and will be removed

  1. #1
    sposini non è connesso Neofita
    Data registrazione
    07-11-2020
    Messaggi
    4

    Predefinito Warning: #1287 'VALUES function' is deprecated and will be removed

    Ciao a tutti, eseguendo questa query

    Codice:
    INSERT INTO lingue (`Lingua`) VALUES ('inglese') ON DUPLICATE KEY UPDATE `Lingua` = VALUES(`Lingua`);
    ottengo il seguente Warning:

    Codice:
    Warning: #1287 'VALUES function' is deprecated and will be removed in a future release. Please use an alias (INSERT INTO ... VALUES (...) AS alias) and replace VALUES(col) in the ON DUPLICATE KEY UPDATE clause with alias.col instead
    Ho provato a correggere così

    Codice:
    INSERT INTO lingue (`Lingua`) VALUES ('inglese') AS alias_lingue ON DUPLICATE KEY UPDATE `Lingua` = alias_lingue.`Lingua`);
    ma mi dice

    Codice:
    Token inatteso. (vicino a AS)
    Qualcuno per favore potrebbe aiutarmi a capire il perché e come dovrei correggere?

  2. #2
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,343

    Predefinito

    Salve,
    è un problema legato a MySQL 8.0.x.

    Ad ogni modo qui c'è un errore:
    Codice:
    alias_lingue.`Lingua`);
    Provi così:
    Codice:
    INSERT INTO lingue (Lingua) VALUES (inglese) AS alias_lingue ON DUPLICATE KEY UPDATE Lingua = alias_lingue.Lingua;
    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 17-09-2022 alle ore 16.19.47

  3. #3
    sposini non è connesso Neofita
    Data registrazione
    07-11-2020
    Messaggi
    4

    Predefinito

    Grazie GraphOGLRisorse,
    ho già provato anche senza l'accento grave ma mi dà lo stesso errore.
    Se è legato a MySQL 8.0.x. significa che posso lasciare così e aggiornarlo in quel modo quando arriveremo a una versione successiva di MySQL?

  4. #4
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,343

    Predefinito

    Secodo la documentazione ufficiale, VALUES() (in riferimento a nuove righe e colonne) è stato deprecato da MySQL 8.0.20 e sarà rimosso nelle versioni successive. Quindi non credo che il problema verrà risolto in versioni successive.

    Alcuni esempi di possibili soluzioni alternative, sono disponibili al link della documentazione ufficiale sopra citato.

    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 17-09-2022 alle ore 18.30.29

  5. #5
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    La query nel tuo primo messaggio sembra corretta, a parte la parentesi di troppo alla fine. Gli apici ` non sono un problema.
    Codice:
    INSERT INTO lingue (`Lingua`)
      VALUES ('inglese')
        AS l
      ON DUPLICATE KEY UPDATE
       `Lingua` = l.`Lingua`;
    Mi sembra strano che ti esca un messaggio di errore in italiano però Sei sicuro di averlo riportato correttamente?
    Codice:
    Token inatteso. (vicino a AS)
    A parte questo, nella tabella c'è una sola colonna? Hai considerato REPLACE come alternativa?

  6. #6
    sposini non è connesso Neofita
    Data registrazione
    07-11-2020
    Messaggi
    4

    Predefinito

    Grazie delle risposte,
    cerco di spiegare meglio la situazione. Da phpMyAdmin scrivo la query in SQL. Nella barra a sinistra, alla riga 3, compare una X rossa ed è lì che mi dice "Token inatteso. (vicino a AS)" e allo stesso tempo mi sottolinea in rosso "AS".
    Pensavo che con questo errore non mi avrebbe eseguito la query ma, viste le vostre risposte, ho provato ad eseguire comunque la query e sembra che la esegua correttamente. Quindi a questo punto la causa potrebbe essere una versione obsoleta di phpMyAdmin?
    In questa tabella, oltre alla chiave primaria Id, ho solo una colonna, ma eseguo query del genere anche su altre tabelle con più colonne.

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Ecco spiegato il mistero dell'errore in italiano

    Si, il problema sembra essere phpMyAdmin che marca come errore qualcosa di corretto. La versione su AlterVista è l'ultima disponibile (5.2.0), ma non sembra essere a conoscenza della recente evoluzione di ON DUPLICATE KEY.

  8. #8
    sposini non è connesso Neofita
    Data registrazione
    07-11-2020
    Messaggi
    4

    Predefinito

    Grazie mille

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •