我有mysql复制设置,其中LOAD SQL在主服务器上运行时没有任何错误,但在从服务器上它失败,错误1064和复制中断
所以1064是保留字问题,但在我的情况下,我没有任何保留字将“"(back tick) here.
The issue is the case statement in SET command.
i want the case statement SET and i cant put "
”放在“case”或“then”保留字上。
此外,如果我将这个SQL原样复制到奴隶上然后运行,那么无怨无悔。
是否可以重写此查询,以便从属服务器不会出现任何case语句问题。
主服务器:5.5.28-29.1-log Percona Server 从服务器:5.6.20-68.0 Percona服务器
LOAD DATA INFILE 'myfile.csv' IGNORE INTO TABLE myTable FIELDS TERMINATED BY ',' IGNORE 1 LINES (
@Timeframe,
@reportdate
)
SET Timeframe = (
CASE
WHEN @timeframe LIKE '%(start time before request time)%' THEN
'Immediate Requests'
WHEN @timeframe LIKE '%(start time less than 30 minutes after request time)%' THEN
'Scheduled Requests'
WHEN @timeframe LIKE '%Start time more than 30 minutes after request time%' THEN
'Delayed Scheduled Requests'
END
),
reportdate = date_sub(curdate(), INTERVAL 1 DAY);
奴隶错误
Last_SQL_Error:错误'您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在查询的第3行'reportdate
= date_sub(curdate(),interval 1 day)附近使用正确的语法。默认数据库: