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

Insert ... ON DUPLICATE KEY UPDATEusingknexを使用して複数の行を追加する方法

    このコードは、オブジェクトとして単一の行を挿入/更新するか、オブジェクトの配列として複数の行を挿入/更新するために作成しました。

    function insertOrUpdate(knex: Knex, tableName: string, data: any) {
      const firstData = data[0] ? data[0] : data;
      return knex.raw(knex(tableName).insert(data).toQuery() + " ON DUPLICATE KEY UPDATE " +
        Object.getOwnPropertyNames(firstData).map((field) => `${field}=VALUES(${field})`).join(", "));
    }
    


    1. SQL:NOTINとNOTEQUAL TOに関しては、どちらがより効率的で、なぜですか?

    2. MySQL:複数のスレッドにわたるトランザクション

    3. バージョンdjango-mpttをアップグレードした後、なぜこのデータベース移行エラーが発生するのですか?

    4. データベース管理者向けの15の基本的なMySQLインタビューの質問