1

いくつかのパラメーターを受け取る更新スクリプトがあります。そのうちの 1 つは、正しい行を識別するための主キーのタプルです。ただし、キーが自分のコードでプライマリであることを確認するためにチェックしていません。スクリプトを実装する人に任せたくありません。追加のクエリを実行する必要がある場合は問題ありません。コードを進める前に、このタプルのすべてのキーが主キーであることを確認したいだけです。ありがとう!

編集:(いくつかの明確さを追加)。テーブル名とキーのリストを受け取るスクリプトがあるとします。これらのキーのそれぞれが、指定されたテーブルでプライマリであることを確認したいと思います。

4

2 に答える 2

3

ええと、私は 1 つの答えを見つけました。おそらく最善ではないでしょう。キーが primary_key であるかどうかを示すブール値を返す何らかの関数/クエリを探していました。このようにして、主キーのリストを返し、キーがそのリストに含まれているかどうかを確認します。

いくつかのコード:

sql = "select indexdef from pg_indexes where tablename = '%s';" % (table,)
self.cursor.execute(sql)
rows = self.cursor.fetchall()
row = rows[0][0]

そこから、必要に応じて結果の文字列を切り取ることができます。基本的に、主キーをコンマで区切って string.split(",") を実行するまで、役に立たないテキストを取り除きました。次に、確認できます。

于 2013-10-24T15:01:05.470 に答える