2

我有两张桌子:

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

我将如何复制t1.mainidto的值t2.parentid

我尝试使用:

SELECT mainid INTO t2 FROM t1

但它不起作用。

4

6 回答 6

3

尝试INSERT ... SELECT语法:

INSERT INTO t2(parentid) SELECT mainid FROM t1
于 2012-06-14T11:56:11.543 回答
2

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

INSERT INTO t2(parentid) SELECT mainid FROM t1
于 2012-06-14T11:56:34.333 回答
1

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

INSERT-SELECT

于 2012-06-14T11:59:56.393 回答
1
INSERT INTO t2 SELECT 0,mainid FROM t1
于 2012-06-14T11:46:40.833 回答
1

以下解决方案

INSERT INTO t2(parentid) SELECT mainid FROM t1

只要 t2(mainid) 设置了默认值,就可以工作。核实。

于 2012-06-14T11:57:41.590 回答
0

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

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

INSERT INTO T2 SELECT 0,mainid FROM T1

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

于 2012-06-14T17:36:27.527 回答