2014-03-12 49 views
2

我有兩個表如下:定義爲變更集插入查詢在liquibase

CREATE TABLE StudentMaster (
    sId  SERIAL, 
    StudentName VARCHAR(50) 
); 

CREATE TABLE StudentClassMap (
    studnetId BIGINT UNSIGNED NOT NULL, 
    studentClass VARCHAR(10), 
    FOREIGN KEY (studnetId) REFERENCES StudentMaster (sId) 
); 

這是我的插入查詢。

INSERT INTO StudentMaster (studentName) values ('Jay Parikh'); 

INSERT INTO StudentClassMap (studnetId, studentClass) 
values ((SELECT sId from StudentMaster where studentName='Jay Parikh'), 
     'M.Sc. 1st Year'); 

我想在liquibase定義變更爲 THES查詢。

對於第一個查詢變更將是:

<changeSet author="unknown" id="insert-example"> 
    <insert tableName="StudentMaster "> 
     <column name="studentName" value="Jay Parikh"/> 
    </insert> 
</changeSet> 

但我不知道如何定義變更另一個查詢。
任何幫助?提前致謝。

回答

14

使用valueComputed屬性:

<changeSet author="unknown" id="insert-example-2"> 
    <insert tableName="StudentClassMap"> 
     <column name="studentId" valueComputed="(SELECT sId from StudentMaster where studentName='Jay Parikh')"/> 
     <column name="studentClass" value="McSc. 1st Year"/> 
    </insert> 
</changeSet>