我正在工作中建立一个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(语法错误)。