擅长:python、mysql、java
<p>对我来说最有效的方法是在两个单独的步骤中<code>insert or ignore</code>值和<code>select</code>rowid。我在<code>data</code>列上使用了<code>unique</code>约束来加速选择并避免重复。</p>
<pre><code>sql.execute("INSERT OR IGNORE INTO foo(data) VALUES(?);" ("Some text.", ))
last_row_id = sql.execute("SELECT id FROM foo WHERE data = ?;" ("Some text. ", ))
</code></pre>
<p><code>select</code>语句没有我想象的那么慢。这是由于SQLite自动为<code>unique</code>列创建索引。</p>