3

I get the below error while trying to partition a table on mysql, does this mean a table cannot be partitioned if it's referencing foreign keys?

Foreign keys are not yet supported in conjunction with partitioning

asked Aug 15, 2021 at 11:15
1
  • Don't use partitioning. It rarely provides any benefit. Would you care to provide SHOW CREATE TABLE? With that, I can elaborate. Commented Aug 16, 2021 at 0:25

2 Answers 2

4

Yes, it is one of the many restrictions on partitioned InnoDB tables.

Foreign keys not supported for partitioned InnoDB tables. Partitioned tables >using the InnoDB storage engine do not support foreign keys. More specifically, >this means that the following two statements are true:

  1. No definition of an InnoDB table employing user-defined partitioning may >contain foreign key references; no InnoDB table whose definition contains foreign >key references may be partitioned.

  2. No InnoDB table definition may contain a foreign key reference to a user-partitioned table; no InnoDB table with user-defined partitioning may contain columns referenced by foreign keys.

The scope of the restrictions just listed includes all tables that use the InnoDB storage engine. CREATE TABLE and ALTER TABLE statements that would result in tables violating these restrictions are not allowed.

see other restrictions

You will need to program the foreign keys constraints in triggers and/or application level.

Joshua Huber
1,75711 silver badges15 bronze badges
answered Aug 15, 2021 at 12:14
1
  • Thanks for the response. Commented Aug 15, 2021 at 17:35
-2

This article from Oracle has what looks like a really cool workaround where foreign keys on a partitioned table are implemented via an intermediate non-partitioned table with TRIGGER statements attached to it: https://blogs.oracle.com/mysql/post/how-to-partition-tables-with-foreign-keys-in-mysql-heatwave-with-a-workaround

answered Feb 19 at 13:57
1
  • 1
    You may want to add the salient point from your link to your answer itself, lest it becomes useless when the link goes stale. Commented Feb 19 at 18:54

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.