6
SQLite 데이터베이스에 모든 외래 키를 나열하는 방법이 있습니까?SQLite는 데이터베이스의 모든 외래 키를 나열합니다.
이들은 sqlite_master에 저장되어있는 것 같지 않으며 PRAGMA foreign_key_list('table')
은 한 번에 하나씩 만 나열합니다.
또는 외래 키가 테이블을 참조하는 것을 나열하는 방법이 있습니까?
SQLite 데이터베이스에 모든 외래 키를 나열하는 방법이 있습니까?SQLite는 데이터베이스의 모든 외래 키를 나열합니다.
이들은 sqlite_master에 저장되어있는 것 같지 않으며 PRAGMA foreign_key_list('table')
은 한 번에 하나씩 만 나열합니다.
또는 외래 키가 테이블을 참조하는 것을 나열하는 방법이 있습니까?
SQLite 셸에서는 .schema
명령어를 사용하고 GREP를 사용하여 REFERENCES
을 포함하는 줄을 필터링합니다. SQLite는 저장소에 shell.c
에서
SELECT sql
FROM (
SELECT sql sql, type type, tbl_name tbl_name, name name
FROM sqlite_master
UNION ALL
SELECT sql, type, tbl_name, name
FROM sqlite_temp_master
)
WHERE tbl_name LIKE shellstatic()
AND type != 'meta'
AND sql NOTNULL
ORDER BY substr(type, 2, 1), name
및
SELECT sql
FROM (
SELECT sql sql, type type, tbl_name tbl_name, name name
FROM sqlite_master
UNION ALL
SELECT sql, type, tbl_name, name
FROM sqlite_temp_master
)
WHERE type != 'meta'
AND sql NOTNULL
AND name NOT LIKE 'sqlite_%'
ORDER BY substr(type, 2, 1), name
두 번째는 아마 당신을 위해 무엇을 찾고 있습니다.
안녕하세요, Benoit. 나는 안드로이드 클라이언트에서이 작업을 수행 할 것이므로 SQLite 셸에 액세스 할 수 없다는 것을 언급해야한다. : –
@Fergal Moran : updated Answer – Benoit
안녕하세요 Benoit - 이것은 모든 테이블에 대한 전체 ddl을 제공합니다. 이는 유용하지만 여전히 외래 키 특정 항목을 구문 분석하는 문제로 남겨 둡니다. 나 PRAGMA foreign_keys "SELECT tbl_name FROM sqlite_master where type = 'table'"의 결과를 호출하지만 더 쉬운 방법을 찾으려고합니다. –