1
A
答えて
4
と同じものが表示されます、コマンドラインコマンドを探しています。しかし、あなた自身をロールバックすることができます。基本的に、これらのデータベースをチェックするクエリが必要です。これは、効果的にGUIツールがしなければならないことです。クエリは次のようになります。
SELECT FK.table_name, FK.constraint_name
FROM user_constraints FK
WHERE FK.constraint_type = 'R'
AND EXISTS
( SELECT FC.position, FC.column_name
FROM user_cons_columns FC
WHERE FC.constraint_name = FK.constraint_name
MINUS
SELECT IC.column_position AS position, IC.column_name
FROM user_ind_columns IC
WHERE IC.table_name = FK.table_name
)
注:このSQLは完全ではありません。実際にはないという賭けがあると考えることに騙されてしまう状況があります。適切な場所に列を持つ複数の異なるインデックスがそれを欺くことができます。適切に行うには、インライン・ビューでグループ化を開始するか、分析関数を使用して、すべての索引列が同じ索引から来るようにする必要があります。だから私はほとんどの時間で動作するこの単純なバージョンでそれを残しました。
次に、このSQLをsqlplusで実行するか、コマンドラインから簡単に実行できるシェルスクリプトに埋め込むことができます。粗製物1は次のようになります。あなたは、このように実行し、基本的な結果を得ることができます
#!/bin/bash -ue
LOGIN="$1"
sqlplus -s << END_SQL
$LOGIN
SET PAGESIZE 5000
SELECT FK.table_name, FK.constraint_name
FROM user_constraints FK
WHERE FK.constraint_type = 'R'
AND EXISTS
( SELECT FC.position, FC.column_name
FROM user_cons_columns FC
WHERE FC.constraint_name = FK.constraint_name
MINUS
SELECT IC.column_position AS position, IC.column_name
FROM user_ind_columns IC
WHERE IC.table_name = FK.table_name
)
/
END_SQL
:
[[email protected] sql]$ ./fk.sh scott/[email protected]
TABLE_NAME CONSTRAINT_NAME
------------------------------ ------------------------------
EMP FK_DEPTNO
3
は、次の正しくスティーブ・アダムスのたびに、礼儀を動作するはずスクリプトです。
-------------------------------------------------------------------------------
--
-- Script: missing_fk_indexes.sql
-- Purpose: to check for locking problems with missing foriegn key indexes
-- For: 8.1 and higher
--
-- Copyright: (c) Ixora Pty Ltd
-- Author: Steve Adams
--
-------------------------------------------------------------------------------
@save_sqlplus_settings
column constraint_name noprint
column table_name format a48
break on constraint_name skip 1 on table_name
select /*+ ordered */
n.name constraint_name,
u.name ||'.'|| o.name table_name,
c.name column_name
from
(
select /*+ ordered */ distinct
cd.con#,
cd.obj#
from
sys.cdef$ cd,
sys.tab$ t
where
cd.type# = 4 and -- foriegn key
t.obj# = cd.robj# and
bitand(t.flags, 6) = 0 and -- table locks enabled
not exists ( -- not indexed
select
null
from
sys.ccol$ cc,
sys.ind$ i,
sys.icol$ ic
where
cc.con# = cd.con# and
i.bo# = cc.obj# and
bitand(i.flags, 1049) = 0 and -- index must be valid
ic.obj# = i.obj# and
ic.intcol# = cc.intcol#
group by
i.obj#
having
sum(ic.pos#) = (cd.cols * cd.cols + cd.cols)/2
)
) fk,
sys.obj$ o,
sys.user$ u,
sys.ccol$ cc,
sys.col$ c,
sys.con$ n
where
o.obj# = fk.obj# and
o.owner# != 0 and -- ignore SYS
u.user# = o.owner# and
cc.con# = fk.con# and
c.obj# = cc.obj# and
c.intcol# = cc.intcol# and
n.con# = fk.con#
order by
2, 1, 3
/
@restore_sqlplus_settings
希望します。
関連する問題
- 1. 外部キーとインデックス
- 2. 私はlimit_choices_toで外部キーを使用する外部キー
- 3. 外部キーを使用してテーブルを作成できない?
- 4. 外部キーの使用
- 5. 外部キーを使用したDjangoフィルタクエリ
- 6. 外部キーを使用したPython + SQlite3
- 7. 外部キーを使用してDjangoファセッティングサブカテゴリ
- 8. 外部キーを使用したsqliteクエリ
- 9. 外部キーとしてvarbinaryを使用
- 10. 外部キーを使用したDataGridView BindingDataSource
- 11. laravel - 外部キーを使用したクエリ
- 12. 外部キーを使用したSQLクエリ
- 13. 外部キーを使用しないデータベーステーブルの照会Django Postgresql
- 14. Rails:外部キーを使用しない列参照の作成
- 15. SQL Server 2005の外部キーとインデックス
- 16. 外部キーを使用したDjangoフォームの照会なし
- 17. add_foreign_key外部キーを作成しない
- 18. rails belongs_to has_manyカスタム外部キーを使用
- 19. 外部キーを使用するテーブル
- 20. 外部キーを使用するSQLite
- 21. 外部キーとContactsContractを使用する
- 22. 複合主キーを外部キーとして使用
- 23. 複合キーを外部キーとして使用
- 24. IDS、外部キー、デフォルト値、インデックスを移動しないAWS Data Migration Service(DMS)
- 25. SQL Serverのインデックス、キー、外部キーをスクリプト化する方法
- 26. テーブルに依存しない外部キー?
- 27. Entity Frameworkコードファーストプライベートキーの一部として外部キーを使用
- 28. Wordpressデータベーススキーマが外部キーを使用しないのはなぜですか?
- 29. linq2sqlで関係/外部キーを使用していますか?
- 30. 注釈に指定された外部キーを使用していないEF6
これは私がGUIに固執するものです。 –