【发布时间】:2020-07-22 17:28:15
【问题描述】:
我想知道我是否需要在第一次 INSERT 后返回值,然后将其传递给下一个 INSERT,或者我可以使用这种代码
<insert id="CreateUser" parameterType="com.portale.model.UserObject">
INSERT INTO users(user_org, user_login, user_pass, locked)
VALUES (#{organization},#{username},#{password},#{locked})
INSERT INTO users_details(details_id, nome, cognome)
VALUES ((SELECT users.user_id FROM users WHERE user_login = #{username}),#{nome},#{cognome})
</insert>
这段代码给我一个错误
### Error updating database. Cause: org.postgresql.util.PSQLException: ОШИБКА: ошибка синтаксиса (примерное положение: "INSERT") Позиция: 87
### The error may exist in file [D:\Users\Eclipse and VM\Tomcat\apache-tomcat- 8.5.53\wtpwebapps\com.portale\WEB-INF\classes\com\portale\mapper\UserMapper.xml]
### The error may involve com.portale.mapper.UserMapper.CreateUser-Inline
### The error occurred while setting parameters
### SQL: INSERT INTO users(user_org, user_login, user_pass, locked) VALUES (?,?,?,?) INSERT INTO users_details(details_id, nome, cognome) VALUES ((SELECT users.user_id FROM users WHERE user_login = ?),?,?)
### Cause: org.postgresql.util.PSQLException: ОШИБКА: ошибка синтаксиса (примерное положение: "INSERT") Позиция: 87;
bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ОШИБКА: ошибка синтаксиса (примерное положение: "INSERT") Позиция: 87!!!! Exception cause!!!! org.postgresql.util.PSQLException: ОШИБКА: ошибка синтаксиса (примерное положение: "INSERT") Позиция: 87
但是所有参数都是在代码中传递的。
我可以在 MyBatis 中使用 (SELECT...) 和 (INSERT) 吗?这是错误的方法还是传递参数的问题?
【问题讨论】:
标签: postgresql mybatis