从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.csdn.net/kleguan/article/details/74058482
这个就很奇怪了,默认值为什么必须显示出现,希望有看到的大神给个指点,感谢!