Derby 서버에서 각 테이블의 제한 조건 이름을 검색하기 위해 스키마의 시스템 테이블에있는 정보를 사용하여 select 문을 작성하는 방법은 무엇입니까?Derby - 제한 사항
5
A
답변
6
해당 설명서는 Derby Reference Manual입니다. 가능한 많은 버전이 있습니다 : 10.13 4 월 2017 년 현재 이었지만, 5 월 10.3을했다 2009 년
원래 대답
SELECT c.constraintname, t.tablename
FROM sysconstraints c, systables t
WHERE c.tableid = t.tableid;
더비 충분히 최신 버전이 필요하기 때문에 시스템 카탈로그 테이블이 (10.13가 comment에 kiwicomb123에 의해 인용) sys.
접두어, 당신은 명시를 사용하도록 쿼리를 수정 너무 표기 가입 및 사용 할 수 있습니다
SELECT c.constraintname, t.tablename
FROM sys.sysconstraints c
JOIN sys.systables t
ON c.tableid = t.tableid;
추가 열을 추가 할 수 있습니다 (예 : c.type
). 제한 유형을 가져올 수 있습니다.
2
SELECT sc.schemaname, co.constraintname, t.tablename, cg.descriptor, t2.tablename, cg2.descriptor, f.deleterule, f.updaterule
FROM sys.sysconstraints co
JOIN sys.sysschemas sc ON co.schemaid = sc.schemaid
JOIN sys.systables t ON co.tableid = t.tableid
JOIN sys.sysforeignkeys f ON co.constraintid = f.constraintid
JOIN sys.sysconglomerates cg ON f.conglomerateid = cg.conglomerateid
JOIN sys.sysconstraints co2 ON f.keyconstraintid = co2.constraintid
JOIN sys.systables t2 ON co2.tableid = t2.tableid
JOIN sys.syskeys k ON co2.constraintid = k.constraintid
JOIN sys.sysconglomerates cg2 ON k.conglomerateid = cg2.conglomerateid
WHERE co.type = 'F'
and sc.schemaname = current schema
두 서술자 엔트리
BTREE 같이 각 테이블 열 번호의 목록을 포함하는 번호를위한 SYSCOLUMNS 테이블의 열 번호에 해당하는 (2,1)
해당 테이블.
누구든지이 쿼리에서이 정보를 추출하는 우아한 방법을 알고 싶습니다. 별도의 쿼리에서 테이블에 대한 모든 열의 목록을 가져오고 설명자를 파싱 한 후 그 이름을 추출하여 숫자를 가져옵니다.
관련 문제
- 1. rt.jar 수정 제한 사항
- 2. 네트워크 모니터의 제한 사항
- 3. MySQL의 고유 제한 사항
- 4. 유형 제한 일반 사항
- 5. 제한 사항 : finder_sql
- 6. GL_DOT3_RGB의 제한 사항
- 7. 스키마 1.1의 제한 사항
- 8. asmx 웹 서비스의 제한 사항
- 9. Vista에서의 개발에 대한 제한 사항
- 10. 로그 전달 제한 사항 데이터베이스
- 11. iPhone 베타 OS 제한 사항
- 12. JPA의 고유 제한 사항 검사
- 13. RavenDB에 객체를 저장하기위한 객체 요구 사항 (제한 사항)은 무엇입니까?
- 14. Symfony route 매개 변수 요구 사항 제한
- 15. WCF의 모든 XmlSerialization 제한 사항 (DataContract와 반대)?
- 16. Visual Studio 2010 Express 제한 사항
- 17. MySQL 전체 텍스트 인덱싱 제한 사항?
- 18. 섬유가 루비에 있습니다. 제한 사항? 프록시?
- 19. 직렬 포트 제한 사항 비동기 입력 기능?
- 20. Windows Azure 테이블 저장소 계정의 제한 사항
- 21. ASP.NET의 응용 프로그램 상태 - 성능 제한 사항?
- 22. 숫자 ID에 대한 URL 제한 사항
- 23. SEAM ENTITYQUERY - 제한 사항 seam-gem 예
- 24. 공지 사항 모듈 : 표시된 숫자 제한
- 25. Teamcity 빌드의 자동 VCS 태그 - 제한 사항?
- 26. Webkit 로컬 저장소 제한 사항 및 옵션
- 27. UDP 소켓을 통한 전송시 제한 사항
- 28. .Net 프레임 워크 개발자를위한 Mono의 제한 사항
- 29. MIME 형식 규칙, 표준 또는 제한 사항?
- 30. 최적화 루틴에 대한 조언/사용할 제한 사항
제한 조건 유형을 알 수있는 방법이 있습니까? –
내가 RTFM을 할 수 있다고 생각합니다. Sysconstraints.Type은 'U'(고유), 'P'(기본), 'F'(외래 키) 또는 'C'(확인) 중 하나의 값을 갖는 CHAR (1) 필드입니다. 그러나 문서에 대한 포인터가 있으면 일반적으로 문서를 읽고 읽는 것이 좋습니다. –
이 쿼리는 Derby 10.13에서 작동하지 않으므로 sysconstraints 및 sysconstraints 테이블 이름 앞에 "sys."접두어를 붙여야합니다. 예 : sysconstraints 대신 sys.sysconstraints를 사용하십시오. – kiwicomb123