MySQL表和列名作为FOREIGN KEY

时间:2018-11-06 10:13:55

标签: mysql

我正在工作中建立一个MySQL DTB以收集多年的研究数据,这些数据在一年中一直被愉快地存储着。为了避免将来造成混乱,我创建了一个dictionary table,在其中(详细解释)说明了每个table和表中每一列的内容。 dictionary包含三个columns TABLE, COLUMN, and DESCRIPTION。现在,我希望设置一个FOREIGN KEY,以确保TABLE and COLUMN只能设置为同一模式中的现有表和列(理想情况下,指定的列应存在于指定的表中)表格)。

据我所知,可以在information_schema中找到所需的信息,但是如上所述,我无法弄清楚如何限制FOREIGN KEY。你能帮一个人吗?

编辑: 到目前为止,我已经尝试将REFERENCE函数与SELECT查询结合起来,看起来像这样。

ALTER TABLE dictionary
ADD CONSTRAINT fk_colname FOREIGN KEY (columnname) 
REFERENCES (SELECT COLUMN_NAME
            FROM inforamtion_schema.COLUMNS
            WHERE TABLE SCHEMA = 'mySchema');

我所有的尝试都与此主题有关,并且在SELECT语句所在的行附近产生了错误#1064(语法错误)。

0 个答案:

没有答案