我正在努力找到一个简单的解决方案来导入具有“before insert”触发器的表。导入表时,触发器在导入的每一行触发,对表造成严重破坏。该触发器应该在每次创建新行时创建一个增量唯一id(它的类型是“yy\u mm\u dd”.incremental\u integer\u表示\u天,我没有找到其他方法让mariadb创建它)。有没有比在导出和接收数据库中删除触发器、执行导入然后手动重新创建触发器更好的方法???谢谢!e。
daupos2t1#
非常感谢!是的,如果我手动编辑导出文件,在插入行之后移动创建触发器,将drop触发器保留在它所在的位置(即在要导入的行之前),则确实有效。所以这是一个解决方案,尽管它确实需要使用我的sql软件(queryous)进行一些手动编辑,它会在开始时生成一个带有触发器的导出脚本。你的建议是创建两个列,一个带有日期,另一个带有增量,这可能是一个值得探讨的问题。尽管由于我必须在每个周期(在我的示例中为天)重置增量,它仍然需要另一个触发器或一些php代码。我想用触发器避免的是检索max(id)的sql请求,递增它(或者在第二个解决方案中是max(日期)和max(期间中的id),检查是否是第一行,然后重置为1或递增)和另一个保存id值的请求。。。似乎没有一种方法可以在导入期间禁用触发器,就像禁用外键检查一样。e。
1条答案
按热度按时间daupos2t1#
非常感谢!
是的,如果我手动编辑导出文件,在插入行之后移动创建触发器,将drop触发器保留在它所在的位置(即在要导入的行之前),则确实有效。所以这是一个解决方案,尽管它确实需要使用我的sql软件(queryous)进行一些手动编辑,它会在开始时生成一个带有触发器的导出脚本。
你的建议是创建两个列,一个带有日期,另一个带有增量,这可能是一个值得探讨的问题。尽管由于我必须在每个周期(在我的示例中为天)重置增量,它仍然需要另一个触发器或一些php代码。
我想用触发器避免的是检索max(id)的sql请求,递增它(或者在第二个解决方案中是max(日期)和max(期间中的id),检查是否是第一行,然后重置为1或递增)和另一个保存id值的请求。。。
似乎没有一种方法可以在导入期间禁用触发器,就像禁用外键检查一样。
e。