2011-10-21 73 views
0

我正在編寫我的第一個groovy腳本來更新整個數據庫表。基本上我想要的數字是ID字段被放入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() 

我張貼,以確保我正確地做這個或者是否有更新我的表的更好的方法。

乾杯

回答

2

有與您正在生成的SQL的一個問題,它應該是:

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

但是,可以取代這整個循環的一切與

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

哪將在單個查詢中設置每一行而不是每行需要UPDATE

相關問題