サンプル集  >  Python  >  MySQL sqlalchemy 削除
MySQL sqlalchemy 削除
2023/05/21

MySQLへsqlalchemyでレコードを削除します。

◆環境
OS Windows 10 Home 22H2 64bit OS x64 プロセッサ
Python 3.9.6
VS Code 1.59.0

CodeIgniter+MySQLで作成したaisatsuテーブルのレコードを削除するプログラムを作成します。

mysqlDel.py
 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: 
from sqlalchemy import create_engine, desc
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.orm import declarative_base
from sqlalchemy import Column, Integer, String

db_url="mysql+mysqlconnector://" \
       "user:pass@localhost:23306/mydb?charset=utf8"

engine = create_engine(db_url)

db_session = scoped_session(
    sessionmaker(
        autocommit=False,
        autoflush=False,
        bind=engine
    )
)

Base = declarative_base()
Base.query = db_session.query_property()

class aisatsu(Base):
    __tablename__ = "aisatsu"

    id = Column(Integer, primary_key = True, autoincrement=True)
    text = Column(String, unique=False)

    def __init__(self, text):
        self.text = text

rslt = db_session.query(aisatsu).filter(aisatsu.id == 2).delete()
db_session.commit()

実行してみます。

PS C:\pywork> py .\mysqlDel.py

特にエラーはでませんでした。

データベースを確認します。

mysql> select * from aisatsu;
+----+--------------+
| id | text         |
+----+--------------+
|  1 | こんにちわ   |
|  3 | Hello        |
+----+--------------+
2 rows in set (0.00 sec)

期待通りにデータが削除されていました。

▲ PageTop  ■ Home


Copyright (C) 2023 ymlib.com