Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.2.16, 10.3.7
-
None
-
Tested on:
CentOS 7 (10.3.7)
Ubuntu 18.04 (10.2.16)
Description
The linked bug (MDEV-15042) appears to not be fixed, or has regressed in the affected versions. The provided test script (also below) still produces the 'Cant' find record in <tablename>' as opposed to the more helpful FK error.
Test Script:
CREATE DATABASE `testdb`; |
USE `testdb`; |
|
CREATE TABLE `parent` ( |
`id` INT PRIMARY KEY AUTO_INCREMENT |
) ENGINE=INNODB;
|
|
CREATE TABLE `child` ( |
-- crucial bit: FK has to be primary key (or if composite, at the start of the primary key) |
`parent_id` INT NOT NULL PRIMARY KEY, |
`id` INT NOT NULL, |
CONSTRAINT `fk_c_parent` FOREIGN KEY (`parent_id`) REFERENCES `parent`(`id`) ON UPDATE CASCADE ON DELETE CASCADE |
) ENGINE=INNODB;
|
|
-- This works as expected, producing a 1452 error (foreign key constraint fails)
|
|
INSERT INTO `child` (`id`, `parent_id`) VALUES (1, 1); |
|
-- ERROR 1032 (HY000): Can't find record in 'child'
|
|
INSERT INTO `child` (`id`, `parent_id`) VALUES (1, 1) ON DUPLICATE KEY UPDATE `id` = VALUES(`id`); |
Attachments
Issue Links
- duplicates
-
MDEV-17521 INSERT ON DUPLICATE KEY UPDATE regression still present
- Closed
-
MDEV-17614 INSERT on dup key update is replication unsafe
- Closed
- relates to
-
MDEV-15042 INSERT ON DUPLICATE KEY UPDATE produces error 1032 (Can't find record)
- Closed