Mysql 字段列表中的“用户id”列不明确

Mysql 字段列表中的“用户id”列不明确,mysql,Mysql,克隆时如何解决此问题 字段列表中的“用户id”列不明确。。。为什么? 我的问题是: Insert into user_table Select * from user_table where user_id = 21 on duplicate KEY UPDATE user_id =LAST_INSERT_ID(user_id ). 查询的问题是您获取整行并试图将其与主键一起插入到同一个表中。您需要做的是选择主键以外的所有其他列,然后插入到表中,允许sql自动递增id,如下所示:

克隆时如何解决此问题

字段列表中的“用户id”列不明确。。。为什么?

我的问题是:

 Insert into user_table Select * from user_table 
  where user_id = 21 on duplicate KEY
  UPDATE  user_id =LAST_INSERT_ID(user_id ).

查询的问题是您获取整行并试图将其与主键一起插入到同一个表中。您需要做的是选择主键以外的所有其他列,然后插入到表中,允许sql自动递增id,如下所示:

insert into user_table (c1, c2, ...)
    select c1, c2, ...
    from user_table
    where user_id = 1
c1,c2,。。。列是否不是主键用户id


顺便说一句,很抱歉回复晚了。周末是用来聚会的

将别名与表名一起使用。sql解析器不知道您在引用哪个用户id列。使用AS定义表并检索列,例如,从表1中选择*作为t1,其中t1.id=21作为t1插入到用户\U表中选择*作为t1从用户\U表中选择*作为t1,其中t1.user\U id=21在重复键更新t1.user\U id=LAST\U INSERT\U IDuser\U id。?我说的对吗?您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,了解使用near'as t1 Select*的正确语法,从user_表中选择as t1,其中t1.user_id=21,在第1行的重复密钥更新中。。。。我变了,就像这样。。。没有错误。。但是插入了零行…插入到用户\u表中从用户\u表中选择*作为t1,其中t1.user\u id=21在重复键上更新user\u id=LAST\u Insert\u IDuser\u table.user\u id。哦,对了。在你最初的帖子上发表评论之后,我似乎没有足够的回购协议在那里发表评论,它不是这样工作的。是否尝试从表中提取特定行并将其插入同一表中?如果这就是你要尝试的,那就有另一种方法。请解释您试图实现的目标。我的问题是我必须克隆user_表行并插入user表中的所有列。用户表由主键用户id组成。当我克隆和插入时,会出现错误“重复id”。如何将clonned user_id替换为last Insert IdI已尝试将此不起作用的Insert插入user_表,从user_表中选择*作为p,其中p.user_id=21在重复键上更新user_表。user_id=last_Insert_id起作用但id未更改。Hey,在了解问题后编辑了答案。抱歉耽搁了,伙计。我不想直截了当地提到专栏,伙计……无论如何,谢谢你的承诺。。。