我正在使用带有 sqlite3 数据库引擎的 Flask 和 SQL Alchemy 构建一个 python 应用程序。我需要将表格大小限制为 1000 行,当达到此限制时,应删除最旧的条目以为新条目腾出空间。就像下面的例子:
| id | uuid | name | type |
________________________________________
| 1 | 78c0 | Danny | chef |
| 2 | 7966 | Mike | welder |
| . | ... | ... | ... |
|1000 | ef1b | John | fireman |
在下一个 INSERT INTO
之后,表格应该如下所示:
| id | uuid | name | type |
________________________________________
| 2 | 7966 | Mike | welder |
| . | ... | ... | ... |
|1000 | ef1b | John | fireman |
|1001 | 7ce4 | Fez | doctor |
在我创建模型时或在配置文件中的某处,是否有实现此目的的方法?假设我的模型文件是:
class People(db.Model):
id = db.Column(db.Integer, primary_key=True)
uuid = db.Column(db.String, unique=True, nullable=False)
name = db.Column(db.String(120), nullable=False)
type = db.Column(db.String(120))
最佳答案
可能是风格不佳,但你可以这样做:
class People(db.Model):
...
timestamp = db.Column(db.DateTime, default=datetime.utcnow)
...
def insert_person(person):
db.session.add(person)
row_count = Person.query.count()
if row_count > 1000:
first_person = User.query.order_by(Person.timestamp.asc()).first()
db.session.delete(first_person)
db.session.commit()
关于python - Flask SqlAlchemy 有没有办法将表格大小限制为 n 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40970690/