使用dbeaver导入sql脚本报错,提示字段超长或无效字符,但是sql粘贴到命令窗口可以直接执行成功,可能是导入工具读取文件乱码导致,可以在sql脚本开头加上注释:
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
你的sql脚本内容
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
这里指定了文件编码之后就能正常导入了。
导入函数时也需要加上DELIMITER特殊标记才能导入成功
DELIMITER //.
CREATE DEFINER=`youdef`@`%` FUNCTION `youFunc`() RETURNS int(20)
BEGIN
DECLARE VALUE INTEGER;
SET VALUE = 0;
RETURN VALUE;
END;
//
DELIMITER ;