mybatis insert into select 在编辑器navicat和其他的可视化软件上可以运行但是在mybatis中不能运行的错误
由于表中的主键是默认值为1的主键,所以在写sql文时就把这个字段给忽略了
INSERT INTO T_PLNT (
CPANY_CD,
PLNT_CD,
PLNT_NM,
PLNT_REP_NM,
PLNT_REP_PHONE_NO,
PLNT_REP_FAX_NO,
POSTCD,
ADDR1,
ADDR2,
ADDR3,
ADDR4,
LOCAL_GOV_CD,
JWNET_PLNT_NO,
JWNET_PLNT_DIV,
LICNS_FG,
ST_DT,
EXPIR_DT,
LOGCL_DEL_FG,
REC_CRET_PRSN,
REC_CRET_DTTM,
FINL_UPDT_PRSN,
FINL_UPDT_DTTM,
GRP_AREA_CD,
PARENT_PLNT_CD,
RTE_GOV_CD,
MNG_APPR_FLAG,
TRNSPT_APPR_FLAG
)
SELECT
CPANY_CD,
'AA19', 'hsauidss', PLNT_REP_NM,
'12312312', PLNT_REP_FAX_NO,
'068-2161', '北海道', '三笠市', '本郷町', 'hasudi', '13000', JWNET_PLNT_NO,
JWNET_PLNT_DIV,
LICNS_FG,
ST_DT,
EXPIR_DT,
LOGCL_DEL_FG,
'xupaiR60', SYSDATE,
'xupaiR60', SYSDATE,
GRP_AREA_CD,
'AA19', '13000', MNG_APPR_FLAG,
TRNSPT_APPR_FLAG
FROM
T_PLNT
WHERE
CPANY_CD = 'B001294'
AND PLNT_CD = 'AAAA'
只需要在<insert id="xxx" useGeneratedKeys="false">加上useGeneratedKeys="false"就可以正常运行了.
对于支持自动生成记录主键的数据库,如:MySQL,SQL Server,此时设置useGeneratedKeys参数值为true,在执行添加记录之后可以获取到数据库自动生成的主键ID
还有就是在xml文件中<if test="xxx='xxx'">在编译时是不通过的,应该写成<if test='xxx="xxx"'>
双引号才可以识别其中的内容