MySQL将一列的值复制到另一列

时间:2012-06-14 11:44:26

标签: mysql

我有两张桌子:

  • t1(mainid, parentid)
  • t2(mainid, parentid)

如何将t1.mainid的值复制到t2.parentid

我尝试使用:

SELECT mainid INTO t2 FROM t1

但它不起作用。

6 个答案:

答案 0 :(得分:3)

尝试使用INSERT ... SELECT语法:

INSERT INTO t2(parentid) SELECT mainid FROM t1

答案 1 :(得分:2)

如果t2中的mainid也是自动增量

INSERT INTO t2(parentid) SELECT mainid FROM t1

答案 2 :(得分:1)

INSERT INTO t2 SELECT 0,mainid FROM t1

答案 3 :(得分:1)

以下解决方案

INSERT INTO t2(parentid) SELECT mainid FROM t1
只要t2(mainid)设置了默认值,

就可以工作。检查一下。

答案 4 :(得分:1)

INSERT INTO tbl_name [(col_name,...)] SELECT ....

INSERT-SELECT

答案 5 :(得分:0)

当您插入表时,您必须考虑在表中插入整行的事实,而不仅仅是一列的值。即使某些列具有默认值,考虑将整行插入表中也是有帮助的。

因此,要将mainid列的值从t1跨越到t2的parentid列,您可以执行以下操作:

INSERT INTO T2 SELECT 0,mainid FROM T1

但是对于T1中的每个mainid值,您将传输0和manid值来弥补 一排t2。如果t2具有唯一约束,则无法以这种方式解决问题。