我正在使用MySQL而且它不是关系数据库(外键约束)所以当我对记录执行删除时,我想检查它是否在任何其他表中使用,如果是,请不要删除。 / p>
我假设我必须对所有表执行数据库范围的搜索,除了它自己的。我在整个数据库中保持每个记录的统一。
示例:
Assets
id | date_created | type_id
History
asset_id | date_recorded | store_id
我找到了一个脚本来查找所有具有记录ID的表:
SELECT
DISTINCT TABLE_NAME,
TABLE_NAME.COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
COLUMN_NAME IN ('desander_id')
AND
TABLE_SCHEMA='emp'
但是我在TABLE_NAME.COLUMN_NAME部分收到错误,其中显示COLUMN_NAME未知。有没有办法可以做到这一点?我这样做是正确的吗?
答案 0 :(得分:1)
你的表格是INFORMATION_SCHEMA.COLUMNS
而你正在选择TABLE_NAME.COLUMN_NAME
这在MySQL中是不可能的。它应该像table_name.column_name
。试试这个:
SELECT DISTINCT COLUMNS.TABLE_NAME,
COLUMNS.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('desander_id') AND
TABLE_SCHEMA='emp';