Skip to content

insertOrUpdate, insertOrSkip table methods #2205

@yurii-zadryhun

Description

@yurii-zadryhun

These methods would be so useful.

  1. insertOrUpdate( $insertion, $update ): Inserts a record with the $insertion values or, if it exists, updates the record with the $update values.
    Please have a look at Laravel's Eloquent implementation of the updateOrInsert method.
    I bet it does something like this
    INSERT INTO {$this->table_name} ( user_id, points ) VALUES( %d, %d ) ON DUPLICATE KEY UPDATE points = points + %d

  2. insertOrSkip( $insertion ): Inserts a record with the $insertion values only if the item doesn't exist. Simple insert() throws the MySQL error (duplicate entry). The implementation is simple: INSERT IGNORE INTO instead of INSERT INTO

Maybe you would also add this method
3. forceInsert( $insertion ): Inserts a record after deleting it if it already exists.
https://dev.mysql.com/doc/refman/8.0/en/replace.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions