Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-15042

INSERT ON DUPLICATE KEY UPDATE produces error 1032 (Can't find record)

    Details

      Description

      There seems to be a regression in the way FK constraints are handled: Trying to insert a record into a child table without the parent row existing now causes a 1032 error (Can't find record in 'child') instead of 1452. Additionally this error (1032) also appears in the server log:

      [ERROR] mysqld: Can't find record in 'child'

      The following tables reproduce this issue. I've linked MDEV-13206 since this might be related: The above described behaviour is only appears from 10.2.11 onwards. 10.2.10 (and 10.1 series) are not affected.

      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);
       
      -- 10.2.10: 1452 error, as expected
      -- 10.2.11 or 10.2.12: 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

            Activity

              People

              • Assignee:
                jplindst Jan Lindström
                Reporter:
                vtermanis Vilnis Termanis
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: