SQLAlchemy Session.executeでinsertしてAUTO INCREMENTでセットされたプライマリキーを取得したい
PythohのORMライブラリSQLAlchemyでMySQLにインサートしたレコードのプライマリキーを、再検索なしに取得したいと思って調べたらちゃんとレスポンスの中にありました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.sql.schema import Column from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.dialects.mysql.base import ( VARCHAR, INTEGER, BIGINT ) class Employee(Base): __tablename__ = 'employee' employee_id = Column(BIGINT(unsigned=True), primary_key=True, nullable=True) name = Column(VARCHAR(length=45), nullable=False) url = 'mysql+pymysql://username:password@db_host/db_name?charset=utf8' engine = create_engine(url,echo=True) Session = sessionmaker(bind=engine) session = Session() employee_tbl = Employee insert_list = [ { 'name': 'chie jyarinko' }, { 'name': 'hiroshi miyamoto' } ] response = self.session.execute(employee_tbl.__table__.insert(), insert_list) primary_keys = response.inserted_primary_key |
上記の例では社員名をEmployeeテーブルに登録して、Auto Incrementで自動採番されたemployee_idを配列で返しています。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Pepperで撮影した写真をAmazon Rekognitionで分析してその結果をPepperがしゃべる ~(2)Pepper編~
Pepperで撮影した写真をAmazon Rekognitionで分析してその結 …
-
-
Apple Silicon M1 MacBook ProにJupyter Notebookをインストールしました
Python – Jupyter NotebookをMac M1 搭 …
-
-
PythonでHTMLエスケープされた全角ハイフンをアンエスケープする
PythonでHTMLエスケープとアンエスケープについて調べていると、 xml. …
-
-
Rocket.ChatのAPIでユーザーを一括登録する
Rocket.Chatの管理画面にインポートのメニューはあって、どうやらuser …
-
-
「神戸Pythonの会 #2 meetup」に行ってきました
「神戸Pythonの会 #2 meetup」に行ってきました。 所感など Ato …
-
-
Redmine REST APIを操作するpython_redmineを試してみた
Redmine のGUIの登録が面倒なのでコマンドで登録、更新、時間の記録が出来 …
-
-
pyenv update で「pyenv: no such command `update’ 」
環境 macOS Sierra 10.12.4 pyenvのアップデート pye …
-
-
SQLAlchemyのModelクラスをMySQLから自動生成する
SQLAlchemyのMySQLモデルを書くのが面倒で、きっと何かツールがあるの …
-
-
Linux Mint 17 MATE 64bit にIPython Notebookをインストールする
今日行く勉強会でIPython Notebookの環境が必要なため、手持ちのLi …
-
-
個人のGoogleカレンダーの予定をPythonで取得する
Google Calendar Twilio ReminderのGoogleカレ …