Как просмотреть все внешние ключи для таблицы или столбца?

Вы также можете попробовать:

Oracle.DataAccess.Types.OracleDecimal d = (Oracle.DataAccess.Types.OracleDecimal)cmd.Parameters["successCount"].Value;

if( d.IsNull )
    existsCount = 0;
else
    existsCount = d.ToInt32( );
501
задан Community 23 May 2017 в 12:34
поделиться

3 ответа

Для Таблицы:

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>';

Для Столбца:

SELECT 
  TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME
FROM
  INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
  REFERENCED_TABLE_SCHEMA = '<database>' AND
  REFERENCED_TABLE_NAME = '<table>' AND
  REFERENCED_COLUMN_NAME = '<column>';

В основном, мы изменили REFERENCED_TABLE_NAME с REFERENCED_COLUMN_NAME в где пункт.

676
ответ дан Fabian Schmengler 23 May 2017 в 12:34
поделиться

Решение, которое я предложил, хрупко; это полагается на соглашение о присвоении имен django для внешних ключей.

USE information_schema;
tee mysql_output
SELECT * FROM TABLE_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'FOREIGN KEY' AND TABLE_SCHEMA = 'database_name';
notee

Затем в оболочке,

grep 'refs_tablename_id' mysql_output
3
ответ дан Christian Oudard 23 May 2017 в 12:34
поделиться

Если Вы используете InnoDB и определили FK, Вы могли бы запросить information_schema базу данных, например:

SELECT * FROM information_schema.TABLE_CONSTRAINTS 
WHERE information_schema.TABLE_CONSTRAINTS.CONSTRAINT_TYPE = 'FOREIGN KEY' 
AND information_schema.TABLE_CONSTRAINTS.TABLE_SCHEMA = 'myschema'
AND information_schema.TABLE_CONSTRAINTS.TABLE_NAME = 'mytable';
72
ответ дан Node 23 May 2017 в 12:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: