sql >> データベース >  >> RDS >> Mysql

Mysqlの「VALUES関数」は非推奨になりました

    基本的に、mysqlは、SQL標準で非常に異なるものにVALUESキーワードを使用できるようにする将来の作業への道を切り開くために、values関数の長年の非標準的な使用を削除することを目指しています。これは、VALUES関数がサブクエリでどのように機能するかを示しているためです。 ON DUPLICATEKEYUPDATE句で驚くべきことがあります。

    VALUES句にエイリアスを追加してから、ON DUPLICATE KEY UPDATE句の非標準のVALUES関数の代わりに、そのエイリアスを使用する必要があります。変更

    INSERT INTO foo (bar, baz) VALUES (1,2)
    ON DUPLICATE KEY UPDATE baz=VALUES(baz)
    

    INSERT INTO foo (bar, baz) VALUES (1,2) AS new_foo
    ON DUPLICATE KEY UPDATE baz=new_foo.baz
    

    (これはmysql 8以降でのみ機能し、古いバージョンまたは少なくとも10.7.1までのmariadbのバージョンでは機能しません)

    https://dev.mysql.com/worklog/task/?id=から13325




    1. MySQLでAUTO_INCREMENTをリセットする方法

    2. AccessまたはMySQLをバックエンドデータベースとして使用する

    3. MySQL Workbenchとは何ですか?

    4. プリペアドステートメントの構文を正しくする