2

私は2つのテーブルを持っています:

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

t1.mainidの値をにコピーするにはどうすればよい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

テーブルに挿入するときは、1つの列の値だけでなく、テーブルに行全体を挿入しているという事実を考慮する必要があります。一部の列にデフォルト値がある場合でも、行全体をテーブルに挿入することを検討すると便利です。

したがって、mainid列の値をt1からt2のparentid列にクロスするには、次のようにすることができます。

INSERT INTO T2 SELECT 0,mainid FROM T1

ただし、T1のすべてのmainid値について、0とmanid値を転送してt2行を構成します。t2に一意性制約がある場合、この方法で問題を解決することはできません。

于 2012-06-14T17:36:27.527 に答える