2

TblA次のような列を持つ表があります

+---------------+
| Field         | 
+---------------+
| a             | 
| b             |
| c             |
| d             | 
| e             | 
| f             | 
+---------------+

このデータを次のように挿入しTblBたい

+---------------+
| Field         | 
+---------------+
| id  (Autoincrement) | 
| a             | 
| b             |
| c             |
+---------------+

そしてTblC好き

+---------------+
| Field         | 
+---------------+
| id  (Equal to the one in tblB) | 
| d             | 
| e             |
| f             |
+---------------+

これを行うためのmysqlの方法はありますか?または、これを行う唯一の方法はスクリプトを作成することですか?

4

2 に答える 2

3

aが の主キーである場合、次tblAの 2 つの手順でこれを行うことができます。

INSERT INTO tblB (a,b,c)
SELECT a,b,c FROM tblA

に続く:

INSERT INTO tblC (id,d,e,f)
SELECT b.id,a.d,a.e,a.f
FROM tblA a
JOIN tblB b ON a.a = b.a
于 2013-02-22T07:41:06.997 に答える
0

@mvpは、主キーがないときにこのアプローチを考え出すのに役立ちましたが、tblAここに投稿すると思いました。

まず、idという名前の新しい自動インクリメント列を追加します。

  ALTER TABLE TblA 
  ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST, 
  ADD primary KEY id(id);

その後、

INSERT INTO TblB (id, a, b, c) 
SELECT id, a, b, c FROM TblA;

INSERT INTO TblC (id, d, e, f) 
SELECT id, d, e, f FROM TblA;
于 2013-02-22T08:23:21.490 に答える