2011-10-21 17 views
0

私は最初のgroovyスクリプトを書いてデータベーステーブル全体を更新しています。基本的に私は数がANOTHER_IDフィールドにgroovyを使って同じテーブルの別のフィールドにフィールドのデータをコピーする正しい方法

import groovy.sql.Sql 

def url = project.getProperty("database.url") 
def driver = project.getProperty("database.driver") 
def user = project.getProperty("database.user") 
def pass = project.getProperty("database.pass") 
def output = properties['output'] 
def sql = Sql.newInstance(url, user, pass, driver) 
def outwriter = new PrintWriter(output) 

sql.eachRow("select * from THE_TABLE", { row -> 
    def id = row.id 
    outwriter.println "Update THE_TABLE set (ANOTHER_ID)=(${id});" 
}); 

outwriter.close() 
sql.close() 

を置くべきIDフィールドである私は私が正しくまたは私のテーブルを更新するより良い方法がある場合は、これをやっていることを確認するために掲示していたいです。あなたが作成しているSQLに問題があります

乾杯

答えて

2

、それは次のようになります。

outwriter.println "UPDATE THE_TABLE SET ANOTHER_ID = ${row.id} WHERE id = ${row.id} ;" 

ただし、

outwriter.println "UPDATE THE_TABLE SET ANOTHER_ID = id ;" 

と、このループ全体、すべてを置き換えることができます行ごとにUPDATEを必要とするのではなく、1つのクエリですべての行を設定します。

関連する問題