从A 表复制一批数据到A表,里面一个字段替换掉而已
表里三个字段 id(自增),model_Id,mode_name,id用序列解决。
sql:
<insert id="copyDetails"> insert into A(id,model_id,detail_name) select A_SEQ.NEXTVAL , ${newId}, detail_name from Awhere model_id =#{oldId} </insert>
本地调试遇到问题:
org.springframework.jdbc.BadSqlGrammarException:
### Error updating database. Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: insert into A(id,model_id,detail_name) select A_SEQ.NEXTVAL, ?,detail_name from A where model_id =?
### Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束
后来问一个大神,说增加一条语句:
useGeneratedKeys="false"
变成
<insert id="copyDetails" useGeneratedKeys="false">
insert into A(id,model_id,detail_name) select A_SEQ.NEXTVAL , ${newId}, detail_name from Awhere model_id =#{oldId}
</insert>
然后就解决了,但是网上查的时候,说useGeneratedKeys默认就是false,大神也不知道具体原因。。。
https://blog.youkuaiyun.com/kleguan/article/details/74058482
这个就很奇怪了,默认值为什么必须显示出现,希望有看到的大神给个指点,感谢!

在尝试从A表复制数据到自身并替换特定字段时,遇到了ORA-00933错误。问题在于SQL插入语句中。添加`useGeneratedKeys=false`属性后,问题得到解决,尽管该属性默认为false。博客作者对此感到困惑,因为通常不需要显式设置。文章探讨了这个问题,并寻求对为何显式设置能解决问题的解释。
3856

被折叠的 条评论
为什么被折叠?



