Can a MySQL FOREIGN KEY CONSTRAINT reference a column value rather than a column name?

I have a child table whose rows are related to various parent tables by parent_table_name, and parent_id columns.

Can I set up a foreign key constraint for these relationships?

In the tables below, I can run queries such as SELECT * FROM parent_1 p1 JOIN child c ON p1.id = c.parent_id AND c.parent_table_name = 'parent_1'; to get a row from parent_1 and any related rows from child.

CREATE TABLE parent_1 (
      id INT NOT NULL AUTO_INCREMENT
    , PRIMARY KEY(id)
);

INSERT INTO parent_1 VALUES(1);

CREATE TABLE parent_2 (
      id INT NOT NULL AUTO_INCREMENT
    , PRIMARY KEY(id)
);

INSERT INTO parent_2 VALUES(1);

CREATE TABLE child (
      id INT NOT NULL AUTO_INCREMENT
    , parent_table_name VARCHAR(16) NOT NULL
    , parent_id INT NOT NULL
    , some_interesting_value VARCHAR(255) NOT NULL
    , PRIMARY KEY(id)
    , KEY (parent_table_name, parent_id)
);

INSERT INTO child VALUES(NULL, 'parent_1', 1, 'Hello world');
INSERT INTO child VALUES(NULL, 'parent_2', 1, 'Goodbye world');

I have tried adding a constraint as below, but got a 1064 error.

ALTER TABLE parent_1 ADD CONSTRAINT p1_children FOREIGN KEY ("parent_1", id)
    REFERENCES child (parent_table_name, parent_id);

ERROR 1064 (42000): You have an error in your SQL syntax;
    check the manual that corresponds to your MySQL server version
    for the right syntax to use near '"parent_1", id) REFERENCES
    child (parent_table_name, parent_id)' at line 1

Is there some way to set up this sort of constraint? Or is the only way to have a third table that has the primary keys from the parent and child table?