0

私は MySQL を使用していますが、これはリレーショナル データベース (外部キー制約) ではないため、レコードに対して削除を実行するときに、それが他のテーブルで使用されているかどうかを確認したいのですが、使用されている場合は削除しないでください。

自分のテーブルを除くすべてのテーブルでデータベース全体の検索を実行する必要があると思います。データベース全体で各レコードの ID を統一しています。

例:

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 が不明であるというエラーが表示されます。これを行う方法はありますか?私はこれを正しい方法でやっていますか?

4

1 に答える 1

1

from テーブルがあり、MySQL では不可能なINFORMATION_SCHEMA.COLUMNSものを選択しています。TABLE_NAME.COLUMN_NAMEのようになるはずです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';
于 2012-08-10T14:24:22.913 に答える