0
でpsycopg2を使用して赤方偏移のテーブルに挿入した行の自動IDを取得し、私はpsycopg2ライブラリを使用してのPython 2.7からAmazonで赤方偏移テーブルにレコードを挿入していると私は、自動生成取り戻すしたいと思います挿入された行のプライマリID。Pythonの
ProgrammingError: syntax error at or near "RETURNING"
は誰のことを行います。
conn=psycopg2.connect(conn_str)
conn.autocommit = True
sql = "INSERT INTO schema.table (col1, col2) VALUES (%s, %s) RETURNING id;"
cur = conn.cursor()
cur.execute(sql,(val1,val2))
id = cur.fetchone()[0]
私はcur.executeライン上のエラーが表示されます。
私はGoogle検索を使用して、ここや他のウェブサイトで見つけることができます通常の方法、例えばを試してみましたこれを修正したり、同じことを達成する方法を知っていますか?
は、私はそれがRETURNING構文を経て、最後のインサートIDを返すサポートしていないとして、私のコード赤方偏移と現在
これは私が思ったことです、ありがとう@Femi – Zac
悲しいことに、それは真実ではありません。私は私の場合Max(id)アプローチを試みましたが、redshiftはアイデンティティ列の値を順次増加させません。生成されたIDの間にギャップが残る可能性があります。新しく生成されたIDは一意であることが保証されていますが、必ずしもMax(id)よりも高いとは限りません。例えば。テーブルの現在のidは1,2,6,7,8になり、新しいレコードが挿入されますが、一意でmax(id)以下のid3が割り当てられます。 –
@ShrikantPrabhu、指してくれてありがとう。 [この記事](http://www.sqlhaven.com/identity-column-seed-step-with-insert-statements/)では、この問題が調査されています。おそらく最も簡単な試みは 'IDENTITY(1,1)'を使うことですが、それが役に立つのかどうかはわかりません。 実際には、新しく挿入されたレコードに関する情報の欠如のためにRedshiftをどのように使用することができるかわかりません。 – MarSoft