웹 응용 프로그램을 사용하여 웹 서버를 시작 (AppStarter)하는 응용 프로그램이 있습니다. 웹 응용 프로그램에는 이주 스크립트 (이동 경로)가 있습니다.ALTER TABLE은 존재하지 않는 경우 제약 조건을 생성합니까?
AppStarter에서 JDBC를 통해 테이블의 일부 데이터를 쓰고 싶습니다. 그러나 그것이 존재하지 않으면 테이블을 만들고 싶습니다. 테이블에는 몇 가지 제약 조건이 있습니다. AppStarter 내에서 내가 다음 명령을 실행
는 :CREATE CACHED TABLE PUBLIC.CORE_USERROLE_TO_PARAMETER (
ID VARCHAR(32) PRIMARY KEY NOT NULL,
VERSION INTEGER,
USER_ID VARCHAR(32)NOT NULL,
ROLE_ID VARCHAR(32) NOT NULL,
PARAMETER VARCHAR(255) NOT NULL
);
ALTER TABLE PUBLIC.CORE_USERROLE_TO_PARAMETER ADD CONSTRAINT PUBLIC.CURTBP_USER_ID FOREIGN KEY(USER_ID) REFERENCES PUBLIC.CORE_USER(ID) NOCHECK;
ALTER TABLE PUBLIC.CORE_USERROLE_TO_PARAMETER ADD CONSTRAINT PUBLIC.CURTBP_ROLE_ID FOREIGN KEY(ROLE_ID) REFERENCES PUBLIC.CORE_USER_ROLE(ID) NOCHECK;
웹 응용 프로그램은이 테이블에서 몇 가지 정보를 읽고 테이블을 생성합니다. 지금은 SQL 이주 스크립트
CREATE CACHED TABLE IF NOT EXISTS PUBLIC.CORE_USERROLE_TO_PARAMETER (
ID VARCHAR(32) PRIMARY KEY NOT NULL,
VERSION INTEGER,
USER_ID VARCHAR(32)NOT NULL,
ROLE_ID VARCHAR(32) NOT NULL,
PARAMETER VARCHAR(255) NOT NULL
);
을 가지고 있지만 어떻게 이미 존재하지 않는 경우에만 제약 조건을 만들려면 어떻게해야합니까? 사전에
감사
현재제약이
select * from INFORMATION_SCHEMA.CONSTRAINTS WHERE CONSTRAINT_NAME='CURTRP_USER_ID'
존재하지만 어떻게 내가 H2있는 경우 쿼리에이를 구축 할 경우 내가 얻을 수
편집 : 내가 할 수있는 전체에서 제약 조건 부분을 마이그레이션 스크립트로 이동 시키지만, 이것은 다소 잘못된 것처럼 보입니다.
저는 H2 데이터베이스로 작업하고 있습니다.
'존재하지 않으면'시도 했습니까? 문서가 이것이 가능하다고 제안하는 것 같다 http://www.h2database.com/html/grammar.html#constraint_name_definition – Sonata