【问题标题】:Inserting generated UUID into table - can't adapt type UUID将生成的 UUID 插入表中 - 无法调整 UUID 类型
【发布时间】:2017-05-01 17:35:34
【问题描述】:

我正在填充这样的表格:

...
time_id = uuid.uuid4()
location_id = uuid.uuid4()
id = row['id']

sql = '''
        INSERT INTO "my-schema"."example"(
            ...
            time_id,
            location_id
            id
        ) VALUES (..., %s, %s, %s)
'''
data = (..., time_id, location_id, id)
try:
    my_cursor.execute(sql, data)
    my_conn.commit()
except (psycopg2.Error) as e:
    print(e)

有如下表定义:

CREATE TABLE "my-schema".example
(
  ...
  time_id character varying(50),
  location_id character varying(50),
  CONSTRAINT "PK_example" PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE "my-schema".example
  OWNER TO postgres;

但是,这给了我以下错误:can't adapt type 'UUID'。这是什么原因?我需要 time_idlocation_id 是唯一的,因为它们充当维度和事实表之间的外键。

【问题讨论】:

标签: python sql postgresql


【解决方案1】:

uuid 是一种特殊的类型,它看起来像一个字符串,但实际上不是。您正在尝试将其放入字符字段中。您需要先将其转换为字符串:str(time_id), str(location_id)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-01-26
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
相关资源
最近更新 更多