剑丢了 2021-12-08 20:09 采纳率: 0%
浏览 32

mysql的insert into select from dual 括号情况

由于本人之前使用oracle,现在使用mysql,然后最近搞了一套模板自己自动生成模板代码,其中,对于批量增加使用了insert into select from dual 的方式:

   <!-- 批量新增 -->
    <insert id="batchInsert" parameterType="java.util.List">
            insert into sys_login_user
            (  login_name, login_password, birthady)
            ( <foreach collection="list" item="item" separator="union all">
                select
                    #{item.loginName},
                    #{item.loginPassword},
                    #{item.birthady}
                    from dual
            </foreach> )
    </insert>


然后在mysql中运行,始终存在错误,而这个代码是我之前在Oracle中运行无误的,后续我去掉了foreach的前后括号,再增加,可以了!

mysql无法运行:
 
INSERT INTO sys_login_user ( login_name, login_password, birthady ) (
    SELECT
        'a',
        'a',
        NULL 
        from dual
UNION ALL
    SELECT
        'b',
        'b', 
        NULL  from dual)
---------------------------分解线
mysql可以运行:
 
INSERT INTO sys_login_user ( login_name, login_password, birthady )  
    SELECT
        'a',
        'a',
        NULL 
        from dual
UNION ALL
    SELECT
        'b',
        'b', 
        NULL  from dual

然后现在我不知道为什么会出现这种情况,有清楚的老哥吗?

  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-12-08 20:15
    关注

    INSERT INTO select语法就是这样的。

    INSERT INTO table2 (c1,c2,c3...) SELECT c1,c2,c3... FROM table1 where ...
    

    你可以在括号后面加个别名试试。

    评论

报告相同问题?

问题事件

  • 修改了问题 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 matlab使用报错
  • ¥15 如何用BL55072驱动屏幕
  • ¥100 网页利用NC文件数据生成云图
  • ¥15 vivo手机的101root检测通常包括Bootloader状态检测吗,有没有懂的人来回答下?
  • ¥15 c++ 单例模式 在不项目之间的引用问题
  • ¥15 我想在微信名中用上红桃♥️这个表情 可是保存不了 说是有特殊符号或者不支持的语言 需要怎么做呢
  • ¥15 oracle报skip not validate connection
  • ¥15 请问左奇异向量怎么求解呢?
  • ¥15 我有开源,需要二开支付宝小程序流量主,有偿
  • ¥15 Arcgis pro制图