1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SQLのメモ

Last updated at Posted at 2019-10-31

なにこれ

やっほ
python経由でsqlite db遊んでたときに遊ぶどころじゃなくなった事案をメモするところ

パラメータ指定

?:のパヤーンがある。
特定のカラムの情報だけしか無いときに使う。(カラムいちいち全指定するの嫌)

query = ('INSERT INTO table (columnA) VALUES (:columnA)')
cursor.execute(query, {'columnA':'hogehoge'})

未確認

なんか~~:=~~ **=:**みたいな指定どっかで見たんだよなぁ・・・
こいつ使ったらパラメータで渡す内容、順番関係なく出来ないだろうか

# 試してダメだったやつ
query = ('INSERT INTO table (columnA, columnB) VALUES (columnA=:hogeA, columnB=:hogeB)')
cursor.execute(query, {'hogeB':'hogehoge'.'hogeA':'hogege'})

追記 これ単純に : のパラメータを代入してるだけやんって気付いてしまった解決(追追記:してないかも)

参考

Crane & to. > Python3でSQLite3を使う – 基本操作からエラー処理までサンプルコード付
Python公式のやつ
stack overflow > sqlite-parameter-substitution-problem

最新のIDを割り振る

特定のカラムに同じ内容のfieldが存在してたらID被りだけをゴリ押しで回避する

INSERT INTO table (id, content) SELECT IFNULL(MAX(id), 0) + 1, content="hogegenoge" FROM table WHERE content
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?