feiyuchuixue / sz-boot-parent

Sz-Admin:一个开源RBAC中后台框架,专为现代应用设计。它结合了最新的技术栈,包括后端的Spring Boot 3、JDK 21、Mybatis Flex、Sa-Token、Knife4j和Flyway,以及前端的Vue 3、Vite5、TypeScript和Element Plus,致力于为您提供一个直观、流畅且功能强大的开发体验。
https://szadmin.cn/
Apache License 2.0
148 stars 37 forks source link

【代码生成器】MYSQL5.7环境下导入数据表报错问题 #39

Open mllt992 opened 2 days ago

mllt992 commented 2 days ago

发现导入数据表功能后端的sql语句居然是89标准的写法。然后我导入SQL的时候就报错了。

解决方案:

GeneratorTableColumnMapper.xml

  <select id="queryAllByTableName" resultType="com.sz.generator.pojo.po.GeneratorTableColumn">
        SELECT
        <include refid="Base_Column_List"></include>
        FROM
        generator_table_column gtc,
        generator_table gt
        WHERE
        gtc.table_id = gt.table_id
        AND gt.table_name IN
        <foreach collection="tableNames" item="name" open="(" separator="," close=")">
            #{name}
        </foreach>
    </select>

更改为

    <select id="queryAllByTableName" resultType="com.sz.generator.pojo.po.GeneratorTableColumn">
        SELECT
        <include refid="Base_Column_List"></include>
        FROM generator_table_column gtc
        INNER JOIN generator_table gt ON gtc.table_id = gt.table_id
        WHERE
        AND gt.table_name IN
        <foreach collection="tableNames" item="name" open="(" separator="," close=")">
            #{name}
        </foreach>
    </select>

GeneratorTableMapper.xml

    <delete id="cleanTableColumnByTableName">
        DELETE
        FROM generator_table_column gtc
        WHERE EXISTS (SELECT 1
        FROM generator_table gt
        WHERE gtc.table_id = gt.table_id
        AND gt.table_name in
        <foreach collection="tableNames" item="name" open="(" separator="," close=")">
            #{name}
        </foreach>
        );
    </delete>

改为

    <delete id="cleanTableColumnByTableName">
        DELETE gtc
        FROM generator_table_column gtc
        INNER JOIN generator_table gt ON gtc.table_id = gt.table_id
        WHERE gt.table_name IN
        <foreach collection="tableNames" item="name" open="(" separator="," close=")">
            #{name}
        </foreach>
    </delete>

image

image

(1)SQL-92(SQL:1992):该版本是SQL标准的一个重要版本,它扩展了早期的SQL-89标准,增加了许多新的特性和功能。 (2)SQL-99(SQL:1999):SQL:1999(SQL-99)是SQL标准的另一个重要版本,它在SQL-92的基础上进一步扩展了功能

feiyuchuixue commented 2 days ago

非常感谢您对sz-admin的支持!反馈的问题验证通过后它将在下个版本解决! 谢谢 ~