当前位置:  开发笔记 > 编程语言 > 正文

在SQL中复制一行?

如何解决《在SQL中复制一行?》经验,为你挑选了1个好方法。

好的我有一个包含两列的表,userID和courseID.它用于为用户分配培训课程.它看起来像这样:

userid   courseid
0          1
0          3
0          6
1          1
1          4
1          5

因此,用户0被分配给课程1,3,6,用户1被分配给1,4,5

无论如何我需要将每个分配给6的用户创建一个具有该userid和courseid 11的新行,基本上将当前分配给6的每个用户分配给11.

由于某种原因(我没有创建这个数据库)两行被标记为主键,而我尝试过的一些语句因为这个而抛出错误,这笔交易到底是什么?

哦,也许是因为有一些用户已经分配到11,所以它可能会窒息?

请帮忙



1> Mark Brittin..:
Insert Into TableName (userID, courseID)
  Select userID, 11 From TableName Where courseID=6;

另外,我对你的评论感到有些困惑,两者都是主键.两行都可以是主键的一部分,或者两者都可以是唯一键,但它们不能都是主键.就错误而言,可能是因为查询试图插入与现有行重复的行.要消除这种可能性,您可以这样做:

Insert Into TableName (userID, courseID)
  Select userID, 11 From TableName Where courseID=6 
     AND (userID not in (Select userID From TableName Where courseID=11))

根据您的数据库,这也可以工作:

INSERT OR IGNORE INTO TableName (userID, courseID)
    SELECT userID, 11 FROM TableName WHERE courseID=6;

无论如何,你去吧.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有