我每 5 分钟使用 mysqlimport
(批处理文件)将记录导入到特定表中,以便在我的网站上获得此表的在线访客。
我目前将在 Windows 批处理文件上执行的 2 个 .sql
发送到远程数据库:1 个用于删除和创建表的 SQL 命令,然后使用 mysqlimport
发送第二个 SQL 命令使用 CSV 填充表。
我想知道是否有更好的方法不是从我的批处理文件发送 mysqlimport 命令,并在插入此特定数据库时在数据库上触发触发器以删除它并在插入新数据库之前重新创建它记录,以避免当前在删除表、重新创建表和填充 CSV 之间发生的间隙(无记录),这种情况经常发生。
知道如何实现这样的触发器吗?
online_players 表的结构:
+-------------------+--------------+------+-----+---------+-------+
| Agent | varchar(255) | YES | | NULL | |
| Name | varchar(255) | YES | | NULL | |
| Alias | varchar(255) | YES | | NULL | |
| Begin_Date | varchar(100) | YES | | NULL | |
| LastBalanceUpdate | varchar(100) | YES | | NULL | |
| Session_minutes | varchar(100) | YES | | NULL | |
| Balance | varchar(100) | YES | | NULL | |
| Product | varchar(100) | YES | | NULL | |
+-------------------+--------------+------+-----+---------+-------+
最佳答案
我通过使用 mysqlimport 中的 -d 参数解决了每次插入之前删除/创建表的问题,该参数会在导入 csv 之前删除所有行。感谢 vmachan 的帮助!
关于MySQL触发器在插入时删除和创建表(通过mysqlimport),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36387713/