@@ -69,7 +69,7 @@ def _create_table(
69
69
index : bool ,
70
70
dtype : dict [str , str ] | None ,
71
71
varchar_lengths : dict [str , int ] | None ,
72
- primary_keys : list [str ] | None = None ,
72
+ unique_keys : list [str ] | None = None ,
73
73
) -> None :
74
74
if mode == "overwrite" :
75
75
_drop_table (cursor = cursor , schema = schema , table = table )
@@ -84,8 +84,8 @@ def _create_table(
84
84
converter_func = _data_types .pyarrow2postgresql ,
85
85
)
86
86
cols_str : str = "" .join ([f"{ _identifier (k )} { v } ,\n " for k , v in postgresql_types .items ()])[:- 2 ]
87
- if primary_keys :
88
- cols_str += f",\n primary key ({ ', ' .join ([_identifier (k ) for k in primary_keys ])} )"
87
+ if unique_keys :
88
+ cols_str += f",\n UNIQUE ({ ', ' .join ([_identifier (k ) for k in unique_keys ])} )"
89
89
sql = f"CREATE TABLE IF NOT EXISTS { _identifier (schema )} .{ _identifier (table )} (\n { cols_str } )"
90
90
_logger .debug ("Create table query:\n %s" , sql )
91
91
cursor .execute (sql )
@@ -589,7 +589,7 @@ def to_sql(
589
589
index = index ,
590
590
dtype = dtype ,
591
591
varchar_lengths = varchar_lengths ,
592
- primary_keys = upsert_conflict_columns ,
592
+ unique_keys = upsert_conflict_columns or insert_conflict_columns ,
593
593
)
594
594
if index :
595
595
df .reset_index (level = df .index .names , inplace = True )
0 commit comments