テーブル a への挿入とテーブル b とのリレーションシップを更新しようとしています - さらに、ent-go を通じて更新しますpostgres を挿入したフレームワーク。
リーリーご覧のとおり、私には優位性があり、私のインデックスはフィールド テーブルの sys_id とキーに対して一意です。
リーリー次のコードは行/リレーションシップを適切に作成しているように見えますが、2 回目の実行では挿入が更新されません。単に繰り返してリレーションシップ列に null エントリを与えるだけです。
次のコードを使用しています:
http://pastie.org/p/6vx6yugiwwlchkmssjnpis
cmdbciservervmwarevirtualmachine: +----------------+--------------------------------+--------+----------+----------+---------+---------------+-----------+---------------------------------+------------+---------+ | field | type | unique | optional | nillable | default | updatedefault | immutable | structtag | validators | comment | +----------------+--------------------------------+--------+----------+----------+---------+---------------+-----------+---------------------------------+------------+---------+ | id | uuid.uuid | false | false | false | true | false | false | json:"id,omitempty" | 0 | | | created_at | time.time | false | false | false | true | false | true | json:"created_at,omitempty" | 0 | | | updated_at | time.time | false | false | false | true | true | false | json:"updated_at,omitempty" | 0 | | | deleted_at | time.time | false | true | false | false | true | false | json:"deleted_at,omitempty" | 0 | | | sysid | uuid.uuid | true | false | false | false | false | false | json:"sysid,omitempty" | 0 | | | name | string | false | true | false | false | false | false | json:"name,omitempty" | 0 | | | vcpu | int | false | true | false | false | false | false | json:"vcpu,omitempty" | 0 | | | corespersocket | int | false | true | false | false | false | false | json:"corespersocket,omitempty" | 0 | | | memory | int | false | true | false | false | false | false | json:"memory,omitempty" | 0 | | | hwversion | string | false | true | false | false | false | false | json:"hwversion,omitempty" | 0 | | | guestos | string | false | true | false | false | false | false | json:"guestos,omitempty" | 0 | | | guestosfamily | string | false | true | false | false | false | false | json:"guestosfamily,omitempty" | 0 | | | guestosfqdn | string | false | true | false | false | false | false | json:"guestosfqdn,omitempty" | 0 | | | powerstate | string | false | true | false | false | false | false | json:"powerstate,omitempty" | 0 | | | customfields | []struct { key int | false | false | false | false | false | false | json:"customfields,omitempty" | 0 | | | | "json:\"key\""; value string | | | | | | | | | | | | "json:\"value\"" } | | | | | | | | | | | data | vmware.vcentervirtualmachine | false | true | false | false | false | false | json:"data,omitempty" | 0 | | +----------------+--------------------------------+--------+----------+----------+---------+---------------+-----------+---------------------------------+------------+---------+ +--------+---------------------------------------------+---------+---------+----------+--------+----------+---------+ | edge | type | inverse | backref | relation | unique | optional | comment | +--------+---------------------------------------------+---------+---------+----------+--------+----------+---------+ | fields | cmdbciservervmwarevirtualmachinecustomfield | false | | o2m | false | true | | +--------+---------------------------------------------+---------+---------+----------+--------+----------+---------+ cmdbciservervmwarevirtualmachinecustomfield: +------------+-----------+--------+----------+----------+---------+---------------+-----------+-----------------------------+------------+---------+ | field | type | unique | optional | nillable | default | updatedefault | immutable | structtag | validators | comment | +------------+-----------+--------+----------+----------+---------+---------------+-----------+-----------------------------+------------+---------+ | id | uuid.uuid | false | false | false | true | false | false | json:"id,omitempty" | 0 | | | created_at | time.time | false | false | false | true | false | true | json:"created_at,omitempty" | 0 | | | updated_at | time.time | false | false | false | true | true | false | json:"updated_at,omitempty" | 0 | | | deleted_at | time.time | false | true | false | false | true | false | json:"deleted_at,omitempty" | 0 | | | sysid | uuid.uuid | false | false | false | false | false | false | json:"sysid,omitempty" | 0 | | | key | int | false | false | false | false | false | false | json:"key,omitempty" | 0 | | | value | string | false | true | false | false | false | false | json:"value,omitempty" | 0 | | +------------+-----------+--------+----------+----------+---------+---------------+-----------+-----------------------------+------------+---------+ +----------------+----------------------------------+---------+---------+----------+--------+----------+---------+ | edge | type | inverse | backref | relation | unique | optional | comment | +----------------+----------------------------------+---------+---------+----------+--------+----------+---------+ | virtualmachine | cmdbciservervmwarevirtualmachine | true | fields | m2o | true | true | | +----------------+----------------------------------+---------+---------+----------+--------+----------+---------+
上記のインデックスと次のものを組み合わせたもの:
リーリーだけで十分です。
以上がent-go o2m upsert コピーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。