DELETE
FROM TB_VALIDATE_PARAM
WHERE UPPER(CONCAT(c_object_id, c_column_code)) NOT IN (
SELECT UPPER(CONCAT(COL.TABLE_NAME, COL.COLUMN_NAME))
FROM information_schema.COLUMNS AS COL
WHERE COL.TABLE_SCHEMA = 'jlink'
);
SELECT *
FROM TB_VALIDATE_PARAM
WHERE UPPER(CONCAT(c_object_id, c_column_code)) NOT IN (
SELECT UPPER(CONCAT(COL.TABLE_NAME, COL.COLUMN_NAME))
FROM information_schema.COLUMNS AS COL
WHERE COL.TABLE_SCHEMA = 'jlink'
);
如您所见,数据库是MYSQL。 DELETE 和 SELECT 中的条件相同。但是当 SELECT 一个可以' t获取任何行, DELETE 删除表中的所有数据。我确定表 TB_VALIDATE_PARAM 有这么多行。是不是Mysql分析了 SELECT 和 DELETE 中不同的条件?
答案 0 :(得分:0)
尝试这是否适合您。
textarea