Dealing with duplicates and consistency errors
Our product
table does not have any UNIQUE
index. However, at least one column should contain a unique value; in fact, it would be rather uncommon to have several products with the same name. So, let's add a UNIQUE
index:
ALTER TABLE product ADD UNIQUE INDEX unq_name (name);
Now that we have a UNIQUE
index, we can use it as an example to discuss how we can deal with duplicates with MariaDB.
Suppose that we want to add a new product, or modify an existing product. In both cases, there is a possibility that the new product name is already in use, causing a conflict. MariaDB supports several statements to automatically handle this conflict:
Syntax |
Behavior |
---|---|
|
MariaDB will simply reject the new row with an error that informs us about the problem. If we are inserting several rows with one statement, the whole statement will fail, and no rows will be added. |
|
Ignore rows that cause an error. They will not be inserted, but all... |