1

次の構造を持つ 2 つのテーブルがあります。

userid, entrydatetime, record.

tableA- 主キーがある(userid, entrydatetime)

tableB- 制約が設定されていません。

私はやろうとしています

INSERT INTO tableA SELECT * FROM tableB

tableBしかし、すべて同じuseridとがあるため、エラーが発生しますentrydatetime

例: userid = '12345' および entrydatetime = '0000-00-00 00:00:00'。

私が必要とする主なデータtableBuserid、レコードです。entryDateTimeこのシナリオでは、私にとってそれほど重要ではありません。

tableA主キー制約を維持しながら 2 つのテーブルをマージするにはどうすればよいですか? entrydatetime挿入時にフィールドをランダム化または自動インクリメントする方法はありますか?

4

1 に答える 1

2

次のクエリを使用できます

SET @value = CURRENT_TIMESTAMP();
INSERT INTO tableA 
(user_id, entrydatetime, record) 
(SELECT user_id, @value := @value + INTERVAL 1 SECOND, record from tableB);

それが役に立てば幸い...

于 2012-10-07T10:48:26.563 に答える