Groovy Script для вставки записей базы данных с уникальным ключом - PullRequest
0 голосов
/ 24 сентября 2011

Я пишу отличный сценарий для чтения данных из CSV-файла и последующего извлечения вставок в базу данных. Я получил все, чтобы работать за исключением генерации уникального первичного ключа или автоинкремента для каждой вставки. Уникальный ключ - campusID. Вот сценарий.

def sql = Sql.newInstance("jdbc:mysql://localhost:3306/mydb",
        "xxxx", "xxxx", "com.mysql.jdbc.Driver")
      def campus = sql.dataSet("CAMPUS")



new File("C:\\test.csv").splitEachLine(",") {fields ->
        campus.add(
          campusId: // Need to generate a unique key here

          campusShortName: fields[1],
          campusUrl: fields[2])

Спасибо.

1 Ответ

1 голос
/ 24 сентября 2011

Уникальный ключ обычно обрабатывается базой данных, а не кодом.

Некоторые базы данных (например, MySQL) допускают установку автоматически сгенерированного поля на null, другие требуют, чтобы столбец вообще не предоставлялся. Итак, либо удалите campusId из вашего запроса, либо установите его на null, и убедитесь, что для столбца установлено значение AUTO_INCREMENT column .

Если вам нужен идентификатор, который был вставлен (например, для использования в качестве внешнего ключа), вам может быть лучше использовать обычные методы SQL и проверить возвращаемое значение метода executeInsert

...