【问题标题】:having id start with custom numberid 以自定义编号开头
【发布时间】:2021-07-26 12:30:23
【问题描述】:

我正在尝试找到一种方法让我的所有 id 都从当前年份开始,例如 21 是现在的 id:4321,我想把它变成 214321,这样更容易按年份找到东西。有什么方法可以做到这一点,而无需在每次打印我的 id 之前手动添加 21 吗?这就是我的 id 的制作方式,我试图将 21 连接到 id,但它给了我一个错误。

id = db.Column(db.Integer, primary_key=True)
id = "21" + id
print(id)

这是我得到的错误:

msr could not assemble any primary key columns for mapped table 'msr' 

msr是我的数据库表名)

【问题讨论】:

  • “因此更容易按年份查找内容” - 为什么不创建一个新列 year_add 来跟踪添加记录的年份?还是一个 date_add 列,其中存储了一个等效的日期时间,您也可以从中解析此信息?
  • 是的,我可能会这样做。 @rfkortekaas 你发给我的链接只是替换了 id 的值,如果它曾经等于 NULL,所以这对我所处的情况并没有真正的帮助,但感谢您抽出宝贵的时间。

标签: python sql sqlalchemy


【解决方案1】:

我对数据库表不太熟悉,但可能是您尝试将字符串添加到整数。

【讨论】:

  • 我只是试着把它变成一个字符串然后再变成一个 int 但错误是:TypeError: unsupported operand type(s) for &: 'int' and 'Column', id is seen as a列变量
  • 您是说您尝试将 id 转换为字符串吗?
  • 因为如果是这样的话,我的意思是你可以把 21 变成一个整数
  • 我把 id 变成了一个字符串,然后将两个字符串连接起来,然后又把它变成了一个 int
猜你喜欢
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2019-10-06
相关资源
最近更新 更多