我在Google Cloud Spanner中有一张桌子。
CREATE TABLE test_id (
Id STRING(MAX) NOT NULL,KeyColumn STRING(MAX) NOT NULL,parent_id INT64 NOT NULL,Updated TIMESTAMP NOT NULL OPTIONS (allow_commit_timestamp=true),) PRIMARY KEY (Id)
而且,我正在尝试通过python脚本执行transaction.insert_or_update
。
对于熊猫数据框中的每一行,我正在做:
transaction.insert_or_update(
'test_id',columns=['Id','KeyColumn','parent_id','Updated'],values=[(uuid.uuid4().hex,row["KeyColumn"],row["parent_id"],spanner.COMMIT_TIMESTAMP)],)
我想要的是,如果表的KeyColumn
中已经存在row [“ KeyColumn”],请更新其parent_id
列,否则在Spanner表中插入与之对应的新行KeyColumn。
但是由于我的主键是Id
,它是由uuid.uuid4().hex
随机生成的,因此每次插入新行。