How Do I Handle Data with Duplicate Primary Keys in a Table?
Scenario 1
The logical table of a DDM instance contains a data record whose type value of the primary key is a boundary value. When you enter a data record with the value exceeding the required range, data with duplicate primary keys is displayed.
Procedure
- Log in to the RDS console.
- On the Instance Management page, locate the target RDS MySQL DB instance and click its name.
- On the Basic Information page, choose Parameters in the left pane.
- Click the Parameters tab and enter sql_mode in the text box. Then click the expanding button in the Value column, select STRICT_ALL_TABLES or STRICT_TRANS_TABLES, and click Save.
STRICT_ALL_TABLES and STRICT_TRANS_TABLES are both strict modes. The strict mode controls how MySQL handles invalid or missing values.
- An invalid value might have the wrong data type for the column, or might be out of range.
- A value is missing when a new row to be inserted does not contain a value for a non-NULL column that has no explicit DEFAULT clause in its definition.
- If the DDM instance version is earlier than 2.4.1.3, do not set sql_mode to ANSI_QUOTES. If you set it to ANSI_QUOTES, double quotation marks used for each string will be translated into an identifier during SQL execution, making the string invalid.
For example, logic in select * from test where tb = "logic" cannot be parsed correctly.
For more information about SQL modes, see Server SQL Modes.
Figure 1 Modifying instance parameters
- On the Instances page, restart the DDM instance.
Scenario 2
For sharded tables (hash\range\mod) with composite primary keys, the primary key is repeated when you insert 0 and 1 to data with the sharding key.
Procedure
- Log in to the RDS console.
- On the Instance Management page, locate the target RDS MySQL DB instance and click its name.
- On the Basic Information page, choose Parameters in the left pane.
- Click the Parameters tab and enter sql_mode in the text box. Then click the expanding button in the Value column, select NO_AUTO_VALUE_ON_ZERO in the drop-down list, and click Save. Figure 2 Modifying instance parameters
- On the Instances page, restart the DDM instance.
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.