我使用的是光滑的3.2.1
我需要将“0”插入一个自动递增的列(MySQL)。
我写了这段代码
val foo = Foo(0, "FOO")
val fooQuery = Tables.FooTable forceInsert foo
Await.result(db.run(fooQuery), Duration.Inf)
我希望forceinsert
将精确值0放在列中,而不是使用数据库提供的递增值。
上面的代码执行正常。但是当我进入DB时,我发现ID是1.因此它不会强制id为0.它仍然使用数据库提供的值。
答案 0 :(得分:0)
如果您的值低于现有值,您将无法插入任何自动递增的列。你可以这样做,如果表格是空的我相信。
答案 1 :(得分:0)
此代码有效
对于Auto increament,在scala中将零添加到相应的参数值,并使用自动递增字段[id]创建表
**/*Table creation*/**
CREATE TABLE `recommendation` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`product_id` int(11) DEFAULT NULL,
`rec_product_id` int(11) DEFAULT NULL,
`color_id` int(11) DEFAULT '1',
`uiposition` int(11) DEFAULT '0',
PRIMARY KEY (`id`)
/* scala Code */
val insertSql = """
|INSERT INTO `wellness`.`recommendation` (`id`, `product_id`, `rec_product_id`, `color_id`, `uiposition`)
|VALUES (?,?,?,?,?)
""".stripMargin
val preparedStmt: sql.PreparedStatement = conn.prepareStatement(insertSql)
preparedStmt.setInt (1, 0)//Auto increment in scala**
preparedStmt.setInt (2, vproid)
preparedStmt.setInt (3, recoid.toInt)
preparedStmt.setInt (4, 1)
preparedStmt.setInt (5, uipos)