MySQL复制指定列到另一张表时报1064错误,SQL语句哪里有问题?
错误原因
- 核心语法错误:
DISTINCT是对SELECT查询返回的整行结果去重的修饰符,不是可以作用于单个字段的函数,不能放在字段列表中间包裹某一列,必须紧跟在SELECT关键字之后,这是触发1064语法报错的直接原因。 - 潜在逻辑问题:
(SELECT UUID())的写法在部分MariaDB版本中会生成全局相同的UUID值,导致所有插入行的uuid重复,无需嵌套子查询,直接调用UUID()函数即可为每一行生成唯一的UUID。
修正后的SQL语句
INSERT INTO `categories` (`uuid`, `title`) SELECT DISTINCT UUID() AS `uuid`, `class_category` AS `title` FROM `online_class`
内容的提问来源于stack exchange,提问作者Mr.Singh
相关产品推荐
相关产品推荐

