我正在编写一个groovy脚本来读取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])
感谢。
答案 0 :(得分:1)
唯一键通常由数据库处理,而不是由代码处理。
某些数据库(如MySQL)接受将自动生成的字段设置为null
,其他数据库则要求根本不提供该列。因此,要么从查询中删除campusId
,要么将其设置为null
,并确保该列设置为AUTO_INCREMENT
column。
如果您需要插入的ID(例如,用作外键),最好使用普通的SQL方法,并检查return value of the executeInsert
method