| 1 | def get_sequence_name(cursor, table_name, pk_name): | 
|---|
| 2 | """Fetch the sequence name of an auto-incrementing field | 
|---|
| 3 |  | 
|---|
| 4 | Uses the postgres native "information_schema.columns" table, | 
|---|
| 5 | resulting in a string looking like "nextval('sometable_id_seq'::regclass)" | 
|---|
| 6 | """ | 
|---|
| 7 | query = """SELECT column_default | 
|---|
| 8 | FROM information_schema.columns | 
|---|
| 9 | WHERE table_name = %s AND column_name = %s;""" | 
|---|
| 10 | cursor.execute(query, (table_name, pk_name)) | 
|---|
| 11 | result = cursor.fetchone() | 
|---|
| 12 | if result is None: | 
|---|
| 13 | return None | 
|---|
| 14 | return result[0].split("'")[1] | 
|---|