#groovy
#groovy
Вопрос:
Я пишу свой первый скрипт groovy для обновления всей таблицы базы данных. По сути, я хочу, чтобы число — это поле ID, которое должно быть помещено в поле ANOTHER_ID
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()
Я публикую, чтобы убедиться, что я делаю это правильно, или если есть лучший способ обновить мою таблицу.
Приветствия
Ответ №1:
Существует проблема с генерируемым вами 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
для каждой строки