迁移新版MySQL/phpMyAdmin时导入数据库遇SQL语法错误求助
排查MySQL视图创建的1064语法错误
错误原因
你的CREATE VIEW语句最后一行存在明显语法冗余:
ORDER BY `daily`.`tglmsk` ASC`tglmsk` ;
ASC后面多写了一个tglmsk,且没有任何分隔符,MySQL解析器无法识别这个无效的语法结构,因此抛出#1064错误。另外旧版MySQL对部分不规范语法的容忍度较高,迁移到新版后,语法校验更严格,这类旧版能“兼容”的错误就会触发报错。
解决方法
直接删除ASC后面多余的tglmsk即可,修正后的完整SQL语句如下:
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `cetak` AS SELECT `daily`.`idu` AS `idu`, `daily`.`nik` AS `nik`, `daily`.`nama` AS `nama`, `daily`.`kdstore` AS `kdstore`, `daily`.`nmstore` AS `nmstore`, `daily`.`tglmsk` AS `tglmsk`, `daily`.`shift` AS `shift`, `daily`.`start` AS `start`, `daily`.`end` AS `end`, `daily`.`event` AS `event`, `daily`.`ln` AS `ln`, `daily`.`jkerja` AS `jkerja`, `daily`.`tjkerja` AS `tjkerja`, `daily`.`tl` AS `tl`, `daily`.`ulembur` AS `ulembur`, `daily`.`uhr` AS `uhr`, `daily`.`uln` AS `uln`, `daily`.`ulembur` + `daily`.`uhr` + `daily`.`uln` AS `pembayaran`, `daily`.`periode` AS `periode`, `daily`.`tgl` AS `tgl`, if(`daily`.`tgl` <= 15,1,2) AS `ctk`, `daily`.`acc` AS `acc` FROM `daily` ORDER BY `daily`.`tglmsk` ASC ;
执行修正后的语句即可成功创建视图。
内容的提问来源于stack exchange,提问作者ITG
相关产品推荐
相关产品推荐

